about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2003-03-05 17:24:37 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2003-03-05 17:24:37 +0000
commit5660eb86ac16a0bb6d7f14d0026015f90bfa5c45 (patch)
tree14ebe64e53d4cc8e42d72fe1328a3c0a17336dd2
parente0d2c9c0b344778492260552e2c8c9bde1526077 (diff)
downloadzsh-5660eb86ac16a0bb6d7f14d0026015f90bfa5c45.tar.gz
zsh-5660eb86ac16a0bb6d7f14d0026015f90bfa5c45.tar.xz
zsh-5660eb86ac16a0bb6d7f14d0026015f90bfa5c45.zip
183818: memory leak in zle_params.c
-rw-r--r--ChangeLog5
-rw-r--r--Src/Zle/zle_params.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 2a467178f..80c7356f0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2003-03-05  Peter Stephenson  <pws@csr.com>
+
+	* 18318: Src/Zle/zle_params.c: memory leak in PREDISPLAY and
+	POSTDISPLAY when setting zero length values.
+
 2003-02-27  Peter Stephenson  <pws@csr.com>
 
 	* 18313: Src/Zle/zle_misc.c: After a single yank (hence
diff --git a/Src/Zle/zle_params.c b/Src/Zle/zle_params.c
index e5277d64d..f14785f01 100644
--- a/Src/Zle/zle_params.c
+++ b/Src/Zle/zle_params.c
@@ -482,8 +482,10 @@ set_prepost(unsigned char **textvar, int *lenvar, char *x)
     }
     if (x) {
 	unmetafy(x, lenvar);
-	*textvar = (unsigned char *)zalloc(*lenvar);
-	memcpy((char *)*textvar, x, *lenvar);
+	if (*lenvar) {
+	    *textvar = (unsigned char *)zalloc(*lenvar);
+	    memcpy((char *)*textvar, x, *lenvar);
+	}
 	free(x);
     }
 }