commit: 2c0a1d39d9341e5fd571d1c0212faa3f0ea7f3d4
parent bd7ad7e8aeead02d32eea3de3b2dd12d386ee24e
Author: Emily Trau <me@angus.ws>
Date: Mon, 1 May 2023 20:40:32 +1000
Fix segfault in yacc
The patch to heirloom-devtool's yacc used sprintf instead of snprintf.
This incompatibility causes a segfault when those code paths are hit.
Fixing this allows yacc to compile more grammars, and may allow some
packages to drop dependency on bison in favor of yacc.
Diffstat:
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/sysa/heirloom-devtools-070527/heirloom-devtools-070527.checksums b/sysa/heirloom-devtools-070527/heirloom-devtools-070527.checksums
@@ -1,4 +1,4 @@
-b0a53dfe0f4cd5b9d3c1a459560a957030e52839f29b0d378e5234bf412705d6 /usr/bin/yacc
+9f5186c86f8a2c7a0eb39d11f7017fc70d5a3940d56c648f93f6a3189ac1d67f /usr/bin/yacc
0fa43f12e3e32987211a433a9692f939b2c5d0dc32cd5523f9ad50bb441ac580 /usr/bin/lex
ffe696afc1bda32a5f4035e29b3275cab73a27df7635ccbe02ed49a30374ccdd /usr/lib/mes/libl.a
bf3fb293f1ff89ee3dbcb08166c64b7a6793b49a12673d7633e3353ebea80d4d /yaccpar
diff --git a/sysa/heirloom-devtools-070527/patches/yacc_remove_wchar.patch b/sysa/heirloom-devtools-070527/patches/yacc_remove_wchar.patch
@@ -1,5 +1,6 @@
SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
+SPDX-FileCopyrightText: 2023 Emily Trau <emily@downunderctf.com>
SPDX-License-Identifier: CDDL-1.0
@@ -227,7 +228,7 @@ diff -U3 -r yacc/y1.c yacc/y1.c
- q = chcopy(q, L" (");
- swprintf(q, q + isize - sarr, L"%d)", -i);
+ q = chcopy(q, " (");
-+ sprintf(q, q + isize - sarr, "%d)", -i);
++ snprintf(q, q + isize - sarr, "%d)", -i);
}
return (sarr);
}
@@ -393,7 +394,7 @@ diff -U3 -r yacc/y2.c yacc/y2.c
lrprnt(); /* dump lhs, rhs */
- swprintf(actname, sizeof actname,
- L"$$%d", nprod);
-+ sprintf(actname, sizeof actname,
++ snprintf(actname, sizeof actname,
+ "$$%d", nprod);
/*
* make it nonterminal