summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/subst.c2
-rw-r--r--Src/utils.c11
3 files changed, 17 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ccad0d1ee..0c7bffe2f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-08-01 Peter Stephenson <p.stephenson@samsung.com>
+
+ * 32932: Src/glob.c, Src/utils.c: add hmkarray() and
+ use to fix leak.
+
2014-07-31 Barton E. Schaefer <schaefer@zsh.org>
* 32931: Src/glob.c: with NO_NOMATCH, using a subscript glob
diff --git a/Src/subst.c b/Src/subst.c
index 471350219..d6be2f0ed 100644
--- a/Src/subst.c
+++ b/Src/subst.c
@@ -2935,7 +2935,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int pf_flags)
*/
if (!vunset) {
if (isarr) {
- aval = mkarray(NULL);
+ aval = hmkarray(NULL);
} else {
val = dupstring("");
}
diff --git a/Src/utils.c b/Src/utils.c
index aa978e6b9..998e46a36 100644
--- a/Src/utils.c
+++ b/Src/utils.c
@@ -3372,6 +3372,17 @@ mkarray(char *s)
}
/**/
+mod_export char **
+hmkarray(char *s)
+{
+ char **t = (char **) zhalloc((s) ? (2 * sizeof s) : (sizeof s));
+
+ if ((*t = s))
+ t[1] = NULL;
+ return t;
+}
+
+/**/
mod_export void
zbeep(void)
{