Merge pull request #266 from tkchia/tkchia/20220802

Fix cpp.ansi crash when stringifying missing macro argument
This commit is contained in:
David Given 2022-08-03 14:16:33 +02:00 committed by GitHub
commit 86ded9ea2c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -706,6 +706,8 @@ static char *stringify(
assert(n != 0); assert(n != 0);
p = args->a_rawvec[n-1]; p = args->a_rawvec[n-1];
add2repl(repl, '"'); add2repl(repl, '"');
if (p) {
while (*p) { while (*p) {
if (is_wsp(*p)) { if (is_wsp(*p)) {
if (!space) { if (!space) {
@ -732,6 +734,8 @@ static char *stringify(
for (--repl->r_ptr; is_wsp(*repl->r_ptr); repl->r_ptr--) for (--repl->r_ptr; is_wsp(*repl->r_ptr); repl->r_ptr--)
/* EMPTY */; /* EMPTY */;
++repl->r_ptr; /* oops, one to far */ ++repl->r_ptr; /* oops, one to far */
}
add2repl(repl, '"'); add2repl(repl, '"');
} else } else
error("illegal use of # operator"); error("illegal use of # operator");