svn commit: r263847 - head/bin/sh

Jilles Tjoelker jilles at FreeBSD.org
Thu Mar 27 22:57:24 UTC 2014


Author: jilles
Date: Thu Mar 27 22:57:23 2014
New Revision: 263847
URL: http://svnweb.freebsd.org/changeset/base/263847

Log:
  sh: Fix memory leak with an assignment before a regular builtin.
  
  MFC after:	1 week

Modified:
  head/bin/sh/var.c

Modified: head/bin/sh/var.c
==============================================================================
--- head/bin/sh/var.c	Thu Mar 27 22:52:26 2014	(r263846)
+++ head/bin/sh/var.c	Thu Mar 27 22:57:23 2014	(r263847)
@@ -330,8 +330,11 @@ setvareq(char *s, int flags)
 				ckfree(s);
 			error("%.*s: is read only", vp->name_len, s);
 		}
-		if (flags & VNOSET)
+		if (flags & VNOSET) {
+			if ((flags & (VTEXTFIXED|VSTACK)) == 0)
+				ckfree(s);
 			return;
+		}
 		INTOFF;
 
 		if (vp->func && (flags & VNOFUNC) == 0)
@@ -364,8 +367,11 @@ setvareq(char *s, int flags)
 		return;
 	}
 	/* not found */
-	if (flags & VNOSET)
+	if (flags & VNOSET) {
+		if ((flags & (VTEXTFIXED|VSTACK)) == 0)
+			ckfree(s);
 		return;
+	}
 	INTOFF;
 	vp = ckmalloc(sizeof (*vp));
 	vp->flags = flags;


More information about the svn-src-all mailing list