From 52f2cda1a2156c8532f2f49391470cf2f66a1bd0 Mon Sep 17 00:00:00 2001 From: Chet Ramey Date: Tue, 13 Dec 2022 12:41:47 -0500 Subject: [PATCH] Bash-5.2 patch 13: fix memory leak referencing a nonexistent associative array element --- patchlevel.h | 2 +- subst.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/patchlevel.h b/patchlevel.h index bf3498f6d..7ebe846a7 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -25,6 +25,6 @@ regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh looks for to find the patch level (for the sccs version string). */ -#define PATCHLEVEL 12 +#define PATCHLEVEL 13 #endif /* _PATCHLEVEL_H_ */ diff --git a/subst.c b/subst.c index 7715bfbf5..1ac6eb2d9 100644 --- a/subst.c +++ b/subst.c @@ -7497,8 +7497,6 @@ expand_arrayref: ? quote_string (temp) : quote_escapes (temp); rflags |= W_ARRAYIND; - if (estatep) - *estatep = es; /* structure copy */ } /* Note that array[*] and array[@] expanded to a quoted null string by returning the W_HASQUOTEDNULL flag to the caller in addition to TEMP. */ @@ -7507,7 +7505,9 @@ expand_arrayref: else if (es.subtype == 2 && temp && QUOTED_NULL (temp) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) rflags |= W_HASQUOTEDNULL; - if (estatep == 0) + if (estatep) + *estatep = es; /* structure copy */ + else flush_eltstate (&es); } #endif -- 2.47.3