ref: 8105290a1e8cc4bda9b9bb7e9583b9282fcb1cb1
parent: c43561c89b53aa1ccd0d98acd400ad059ab99fb0
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Sat Nov 13 03:18:32 EST 2021
cc1: Fix double free() error The commit e8a346f9 tried to fix the double free() error detected using stress testing. The problem with that solution was that it could not work with macro expansion because it only concatenated consecutive strings, but it didn't considered strings resulting of macro expansion.
--- a/src/cmd/cc/cc1/expr.c
+++ b/src/cmd/cc/cc1/expr.c
@@ -607,7 +607,6 @@
s = xrealloc(s, len + n + 1);
memcpy(s+len, t, n);
s[len + n] = '\0';
- killsym(yylval.sym);
}
++len;
if (tp->n.elem != len) {