From ebd51de38cb45e8988c941392dbec14a93f7a673 Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Fri, 31 Oct 2025 10:38:50 +0100 Subject: [PATCH] 54012: fix use of out of scope array variable --- ChangeLog | 2 ++ Src/subst.c | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 51e77a740..9e5110098 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2025-10-31 Oliver Kiddle + * 54012: Src/subst.c: fix use of out of scope array variable + * 54007: Src/exec.c, Src/hist.c, Src/init.c, Src/jobs.c, Src/module.c, Src/params.c, Src/signals.c, Src/Zle/complete.c, Src/Zle/zle_misc.c, Src/Zle/compresult.c, Src/Zle/zle_keymap.c, Src/Zle/zle_main.c: diff --git a/Src/subst.c b/Src/subst.c index d0f2a1b45..be2333ca5 100644 --- a/Src/subst.c +++ b/Src/subst.c @@ -1626,6 +1626,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int pf_flags, int *ret_flags) { char *aptr = *str, c, cc; + char *arr[2]; char *s = aptr, *fstr, *idbeg, *idend, *ostr = (char *) getdata(n); int colf; /* != 0 means we found a colon after the name */ /* @@ -3266,7 +3267,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int pf_flags, } if (arrasg) { /* This is an array assignment. */ - char *arr[2], **t, **a, **p; + char **t, **a, **p; if (spsep || spbreak) { aval = sepsplit(val, spsep, 0, 1); isarr = nojoin ? 1 : 2;