On Thu, Jul 04, 2002 at 01:24:11PM +0200, Stefan Farfeleder wrote:
> On Thu, Jul 04, 2002 at 06:16:43PM +0800, Eugene Grosbein wrote:
> > 
> > >Description:
> >     There seem to be memory leak in 'test' command that was not
> >     a problem when it was external command but it became a problem
> >     when 'test' was made builtin.
> 

Sorry, here's the real patch.
Index: src/bin/test/test.c
===================================================================
RCS file: /home/ncvs/src/bin/test/test.c,v
retrieving revision 1.29.2.5
diff -u -r1.29.2.5 test.c
--- src/bin/test/test.c 29 Apr 2002 13:06:02 -0000      1.29.2.5
+++ src/bin/test/test.c 4 Jul 2002 11:37:30 -0000
@@ -28,6 +28,8 @@
 #include <string.h>
 #include <unistd.h>
 
+char **nargv;
+
 #ifdef SHELL
 #define main testcmd
 #include "bltin/bltin.h"
@@ -51,6 +53,7 @@
 #else
        va_start(ap, msg);
 #endif
+       free(nargv);
        verrx(2, msg, ap);
        /*NOTREACHED*/
        va_end(ap);
@@ -199,7 +202,6 @@
        uid_t   euid, uid;
        int     i, res;
        char    *p;
-       char    **nargv;
 
        /*
         * XXX copy the whole contents of argv to a newly allocated
@@ -240,6 +242,8 @@
                syntax(*t_wp, "unexpected operator");
        (void)setregid(gid, egid);
        (void)setreuid(uid, euid);
+
+       free(nargv);
 
        return res;
 }

Reply via email to