Author: jilles
Date: Fri Apr 18 12:42:50 2014
New Revision: 264644
URL: http://svnweb.freebsd.org/changeset/base/264644

Log:
  MFC r263847: sh: Fix memory leak with an assignment before a regular builtin

Modified:
  stable/9/bin/sh/var.c
Directory Properties:
  stable/9/bin/sh/   (props changed)

Modified: stable/9/bin/sh/var.c
==============================================================================
--- stable/9/bin/sh/var.c       Fri Apr 18 12:34:10 2014        (r264643)
+++ stable/9/bin/sh/var.c       Fri Apr 18 12:42:50 2014        (r264644)
@@ -344,8 +344,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)
@@ -378,8 +381,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-stable-9@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9
To unsubscribe, send any mail to "svn-src-stable-9-unsubscr...@freebsd.org"

Reply via email to