shithub: scc

Download patch

ref: 18cffd69099077966d80b47aad16bf5f7f6b2e5b
parent: 433b9cd26eb5d27977eb8cde6bb1c019606e0ffa
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Mon Nov 1 13:45:02 EDT 2021

cc1: Allow empty fname in setloc()

so setloc() must support an empty fname parameter for that case.

--- a/src/cmd/cc/cc1/lex.c
+++ b/src/cmd/cc/cc1/lex.c
@@ -73,13 +73,16 @@
 {
 	size_t len;
 
-	if ((len = strlen(fname)) >= FILENAME_MAX)
-		die("cc1: %s: file name too long", fname);
-	memmove(filenam, fname, len);
-	filenam[len] = '\0';
+	if (fname) {
+		if ((len = strlen(fname)) >= FILENAME_MAX)
+			die("cc1: %s: file name too long", fname);
+		memmove(filenam, fname, len);
+		filenam[len] = '\0';
 
-	free(input->filenam);
-	input->filenam = xstrdup(fname);
+		free(input->filenam);
+		input->filenam = xstrdup(fname);
+	}
+
 	lineno = input->lineno = line;
 }