Hello,

In setDolp() pointers cp and dp initially point to the same
copied string, but later dp can become NULL if Strstr() finds
no match. The copied string is not freed in this case.
NetBSD added this fix in their dol.c revision 1.23 (2006).
OK?

- Michael

 
Index: dol.c
===================================================================
RCS file: /cvs/src/bin/csh/dol.c,v
retrieving revision 1.24
diff -u -p -u -r1.24 dol.c
--- dol.c       18 Sep 2018 06:56:09 -0000      1.24
+++ dol.c       20 Sep 2018 04:14:37 -0000
@@ -766,8 +766,10 @@ setDolp(Char *cp)
        addla(dp);
        free(dp);
     }
-    else
+    else {
        addla(cp);
+       free(cp);
+    }
 
     dolp = STRNULL;
     if (seterr)

Reply via email to