Date: Fri, 15 May 2026 15:52:23 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 295086] /bin/sh undefined variable in heredoc triggers assertion Message-ID: <bug-295086-227-8PBo6U85SV@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-295086-227@https.bugs.freebsd.org/bugzilla/>
index | next in thread | previous in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295086 Dag-Erling Smørgrav <des@FreeBSD.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |des@FreeBSD.org --- Comment #2 from Dag-Erling Smørgrav <des@FreeBSD.org> --- I added some instrumentation to the INTOFF and INTON macros: $ foo=$(cat <<eof) INTOFF 1 /usr/src/bin/sh/input.c:252 INTON 0 /usr/src/bin/sh/input.c:255 INTOFF 1 /usr/src/bin/sh/memalloc.c:146 INTON 0 /usr/src/bin/sh/memalloc.c:153 INTOFF 1 /usr/src/bin/sh/parser.c:1114 INTON 0 /usr/src/bin/sh/parser.c:1122 INTOFF 1 /usr/src/bin/sh/parser.c:1204 INTON 0 /usr/src/bin/sh/parser.c:1223 > $bar INTOFF 1 /usr/src/bin/sh/input.c:252 INTON 0 /usr/src/bin/sh/input.c:255 > eof INTOFF 1 /usr/src/bin/sh/input.c:252 INTON 0 /usr/src/bin/sh/input.c:255 INTOFF 1 /usr/src/bin/sh/expand.c:468 INTOFF 1 /usr/src/bin/sh/output.c:208 INTON 0 /usr/src/bin/sh/output.c:212 /usr/obj/usr/src/amd64.amd64/bin/sh/sh: bar: parameter not set INTOFF 1 /usr/src/bin/sh/error.c:78 INTOFF 2 /usr/src/bin/sh/var.c:793 INTON 1 /usr/src/bin/sh/var.c:822 INTON 0 /usr/src/bin/sh/eval.c:514 INTOFF 1 /usr/src/bin/sh/exec.c:434 INTOFF 2 /usr/src/bin/sh/exec.c:582 INTON 1 /usr/src/bin/sh/exec.c:588 INTON 0 /usr/src/bin/sh/exec.c:442 INTOFF 1 /usr/src/bin/sh/jobs.c:754 INTON 0 /usr/src/bin/sh/jobs.c:784 INTOFF 1 /usr/src/bin/sh/jobs.c:790 INTON 0 /usr/src/bin/sh/jobs.c:807 INTOFF 1 /usr/src/bin/sh/jobs.c:896 INTON 0 /usr/src/bin/sh/jobs.c:1001 INTOFF 1 /usr/src/bin/sh/var.c:251 INTON 0 /usr/src/bin/sh/jobs.c:916 INTOFF 2 /usr/src/bin/sh/var.c:751 INTOFF 1 /usr/src/bin/sh/jobs.c:963 INTOFF 2 /usr/src/bin/sh/jobs.c:515 INTON 1 /usr/src/bin/sh/jobs.c:528 INTON 0 /usr/src/bin/sh/jobs.c:967 INTOFF 3 /usr/src/bin/sh/var.c:337 INTON 2 /usr/src/bin/sh/var.c:365 INTON 1 /usr/src/bin/sh/var.c:778 INTOFF 2 /usr/src/bin/sh/var.c:337 INTON 1 /usr/src/bin/sh/var.c:365 INTON 0 /usr/src/bin/sh/var.c:260 INTOFF 1 /usr/src/bin/sh/var.c:793 INTON 0 /usr/src/bin/sh/var.c:822 INTOFF 1 /usr/src/bin/sh/memalloc.c:214 INTON 0 /usr/src/bin/sh/memalloc.c:226 INTOFF 1 /usr/src/bin/sh/redir.c:111 INTON 0 /usr/src/bin/sh/redir.c:153 INTOFF 1 /usr/src/bin/sh/redir.c:154 INTON 0 /usr/src/bin/sh/redir.c:160 INTOFF 1 /usr/src/bin/sh/memalloc.c:146 INTON 0 /usr/src/bin/sh/memalloc.c:153 INTOFF 1 /usr/src/bin/sh/jobs.c:1087 INTOFF 2 /usr/src/bin/sh/jobs.c:1206 INTON 1 /usr/src/bin/sh/jobs.c:1250 INTOFF 2 /usr/src/bin/sh/jobs.c:515 INTON 1 /usr/src/bin/sh/jobs.c:528 INTON 0 /usr/src/bin/sh/jobs.c:1127 INTON -1 /usr/src/bin/sh/expand.c:526 INTOFF 0 /usr/src/bin/sh/redir.c:111 INTON -1 /usr/src/bin/sh/redir.c:160 INTOFF 0 /usr/src/bin/sh/var.c:407 At least part of the issue appears to be that suppressint is off by one. It looks like we never turned interrupts back on after we tripped the undefined variable. -- You are receiving this mail because: You are the assignee for the bug.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-295086-227-8PBo6U85SV>
