about summary refs log tree commit diff
diff options
context:
space:
mode:
authorClint Adams <clint@users.sourceforge.net>2008-09-10 19:02:11 +0000
committerClint Adams <clint@users.sourceforge.net>2008-09-10 19:02:11 +0000
commitb62584cbcd7dbbb740b9420e37f34ee1b2e8ff18 (patch)
tree228cbdc346fe62e305f6e2da126610c5266e713e
parent96fc1bb1495bb1b417391f54b725f7cd3d5dcc2f (diff)
downloadzsh-b62584cbcd7dbbb740b9420e37f34ee1b2e8ff18.tar.gz
zsh-b62584cbcd7dbbb740b9420e37f34ee1b2e8ff18.tar.xz
zsh-b62584cbcd7dbbb740b9420e37f34ee1b2e8ff18.zip
25639: free ptr2 if hsubl is NULL.
-rw-r--r--ChangeLog2
-rw-r--r--Src/hist.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index c7749ba10..62885ed36 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2008-09-10  Clint Adams  <clint@zsh.org>
 
+	* 25639: Src/hist.c: free ptr2 if hsubl is NULL.
+
 	* 25638: Src/Zle/compmatch.c: remove unnecessary ternary expression
 	in match_str.
 
diff --git a/Src/hist.c b/Src/hist.c
index 521baf613..f3979dfc0 100644
--- a/Src/hist.c
+++ b/Src/hist.c
@@ -346,8 +346,10 @@ getsubsargs(char *subline, int *gbalp, int *cflagp)
     if (strlen(ptr1)) {
 	zsfree(hsubl);
 	hsubl = ptr1;
-    } else if (!hsubl)		/* fail silently on this */
+    } else if (!hsubl) {		/* fail silently on this */
+	zsfree(ptr2);
 	return 0;
+    }
     zsfree(hsubr);
     hsubr = ptr2;
     follow = ingetc();