Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: crash with nameref and local argv



On Tue, Nov 4, 2025 at 12:54 PM Oliver Kiddle <opk@xxxxxxx> wrote:
>
> Still crashes with typeset -nu 'foo=argv[1]'

Indeed.  This instead.

diff --git a/Src/params.c b/Src/params.c
index 5a0434e40..407d557d7 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -3239,7 +3239,8 @@ assignsparam(char *s, char *val, int flags)
        return NULL;
     }
     if (*val && (v->pm->node.flags & PM_NAMEREF)) {
-       if (!valid_refname(val)) {
+       if (!valid_refname(val) ||
+           ((v->pm->node.flags & PM_UPPER) && !strncmp(val, "argv", 4))) {
            zerr("invalid variable name: %s", val);
            zsfree(val);
            unqueue_signals();




Messages sorted by: Reverse Date, Date, Thread, Author