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)