about summary refs log tree commit diff
diff options
context:
space:
mode:
authorClint Adams <clint@users.sourceforge.net>2008-10-23 00:48:59 +0000
committerClint Adams <clint@users.sourceforge.net>2008-10-23 00:48:59 +0000
commit365e04460d9ae4bfc3d48af912f60a9eb4527ed4 (patch)
tree10dd7f66268527a23341d21e3c0e7b7e2c8d2a7f
parent1a0f907a7762ef923cbd3342d64114924a740273 (diff)
downloadzsh-365e04460d9ae4bfc3d48af912f60a9eb4527ed4.tar.gz
zsh-365e04460d9ae4bfc3d48af912f60a9eb4527ed4.tar.xz
zsh-365e04460d9ae4bfc3d48af912f60a9eb4527ed4.zip
25926: free val only after it may be passed to strlen (as in 25656).
-rw-r--r--ChangeLog5
-rw-r--r--Src/params.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 0f140d1ee..8757583f5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-10-23  Clint Adams  <clint@zsh.org>
+
+	* 25926: Src/params.c: free val only after it may be passed to
+	strlen (as in 25656).
+
 2008-10-20  Peter Stephenson  <pws@csr.com>
 
 	* unposted: Config/version.mk: 4.3.6-dev-2.
diff --git a/Src/params.c b/Src/params.c
index 71cb2a907..0faf667b9 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -2253,10 +2253,10 @@ setstrvalue(Value v, char *val)
 	    mnumber mn = matheval(val);
 	    v->pm->gsu.f->setfn(v->pm, (mn.type & MN_FLOAT) ? mn.u.d :
 			       (double)mn.u.l);
-	    zsfree(val);
 	    if ((v->pm->node.flags & (PM_LEFT | PM_RIGHT_B | PM_RIGHT_Z)) &&
 		!v->pm->width)
 		v->pm->width = strlen(val);
+	    zsfree(val);
 	}
 	break;
     case PM_ARRAY: