logo

live-bootstrap

Mirror of <https://github.com/fosslinux/live-bootstrap>
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:

Msysa/heirloom-devtools-070527/heirloom-devtools-070527.checksums2+-
Msysa/heirloom-devtools-070527/patches/yacc_remove_wchar.patch5+++--
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