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;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to