From d27ea2ae02275b255f9efbf929d1dc7932aebc57 Mon Sep 17 00:00:00 2001 From: Bart Schaefer Date: Mon, 4 Mar 2024 21:36:45 -0800 Subject: unposted (cf. 52617): only scalars can instantiate a declared named reference --- ChangeLog | 3 +++ Src/params.c | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 16ede3665..6dc3e32ee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2024-03-04 Bart Schaefer + * unposted (cf. 52617): Src/params.c: only scalars can instantiate + a declared named reference + * 52659: Src/builtin.c, Test/K01nameref.ztst: Fix crash when unset was called on a named referece, add regression test diff --git a/Src/params.c b/Src/params.c index 263cd0c52..4bcf41c22 100644 --- a/Src/params.c +++ b/Src/params.c @@ -1050,8 +1050,14 @@ createparam(char *name, int flags) name = refname; oldpm = NULL; } else { - if (!(lastpm->node.flags & PM_READONLY)) - lastpm->node.flags |= PM_UNSET; + if (!(lastpm->node.flags & PM_READONLY)) { + if (flags) { + /* Only plain scalar assignment allowed */ + zerr("%s: can't change type of named reference", + name); /* Differs from ksh93u+ */ + return NULL; + } + } return lastpm; } } else { -- cgit 1.4.1