NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: bin/52737 (bmake crash for invalid usage of .PATH)



> Synopsis: bmake crash for invalid usage of .PATH

The assert could be removed, or made conditional
on seeing valid dependency line:

diff -r 6f103b9234c3 bmake/parse.c
--- a/bmake/parse.c	Sun Dec 30 09:28:02 2018 -0800
+++ b/bmake/parse.c	Mon Apr 08 13:33:09 2019 -0700
@@ -1222,6 +1222,7 @@
     Lst 	    curTargs;	/* list of target names to be found and added
 				 * to the targets list */
     char	   *lstart = line;
+    Boolean	    colon_seen;
 
     if (DEBUG(PARSE))
 	fprintf(debug_file, "ParseDoDependency(%s)\n", line);
@@ -1229,6 +1230,7 @@
 
     specType = Not;
     paths = NULL;
+    colon_seen = FALSE;
 
     curTargs = Lst_Init(FALSE);
 
@@ -1313,6 +1315,8 @@
 
 	/* Insert a null terminator. */
 	savec = *cp;
+	if (*cp == ':')
+	    colon_seen = TRUE;
 	*cp = '\0';
 
 	/*
@@ -1768,6 +1772,10 @@
     }
 
 out:
+    if (paths && !colon_seen) {
+	Lst_Destroy(paths, NULL);
+	paths = NULL;
+    }
     assert(paths == NULL);
     if (curTargs)
 	    Lst_Destroy(curTargs, NULL);


Home | Main Index | Thread Index | Old Index