summaryrefslogtreecommitdiff
path: root/Src/params.c
diff options
context:
space:
mode:
authorAxel Beckert <abe@deuxchevaux.org>2018-04-09 00:42:15 +0200
committerAxel Beckert <abe@deuxchevaux.org>2018-04-09 00:42:15 +0200
commitfe36c1ada77f817dbeeeed5ee70c7ba08eeb1d18 (patch)
tree0229967da5e73bd29a2d6014c847509b361f3631 /Src/params.c
parent1521c7d0f7e607b789564e819173e228e9475137 (diff)
parentf9e9dce5443f323b340303596406f9d3ce11d23a (diff)
downloadzsh-fe36c1ada77f817dbeeeed5ee70c7ba08eeb1d18.tar.gz
zsh-fe36c1ada77f817dbeeeed5ee70c7ba08eeb1d18.zip
Merge tag 'zsh-5.5' and hence branch 'upstream' into branch 'debian'
Release 5.5 of zsh
Diffstat (limited to 'Src/params.c')
-rw-r--r--Src/params.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/Src/params.c b/Src/params.c
index de7730ae7..36f5f0676 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -3216,7 +3216,7 @@ assignaparam(char *s, char **val, int flags)
* This only applies if the flag ASSPM_KEY_VALUE is passed in,
* indicating prefork() detected this syntax.
*
- * For associative arrays we just junk the Makrer elements.
+ * For associative arrays we just junk the Marker elements.
*/
if (flags & ASSPM_KEY_VALUE) {
char **aptr;
@@ -3243,6 +3243,7 @@ assignaparam(char *s, char **val, int flags)
(!isset(KSHARRAYS) && *iptr == 0)) {
unqueue_signals();
zerr("bad subscript for direct array assignment: %s", *aptr);
+ freearray(val);
return NULL;
}
if (!isset(KSHARRAYS))
@@ -3260,6 +3261,7 @@ assignaparam(char *s, char **val, int flags)
fullval = zshcalloc((maxlen+1) * sizeof(char *));
if (!fullval) {
zerr("array too large");
+ freearray(val);
return NULL;
}
fullval[maxlen] = NULL;