opnsense-src/bin/sh/tests/execution
Jilles Tjoelker 6bc7175f31 sh: Fix double INTON with vfork
The shell maintains a count of the number of times SIGINT processing has
been disabled via INTOFF, so SIGINT processing resumes when all disables
have enabled again (INTON).

If an error occurs in a vfork() child, the processing of the error enables
SIGINT processing again, and the INTON in vforkexecshell() causes the count
to become negative.

As a result, a later INTOFF may not actually disable SIGINT processing. This
might cause memory corruption if a SIGINT arrives at an inopportune time. As
of r360452, it causes the shell to abort when it would unsafely allocate or
free memory in certain ways.

Note that various places such as errors in non-special builtins
unconditionally reset the count to 0, so the problem might still not always
be visible.

PR:		246497
Reported by:	jbeich
MFC after:	2 weeks
2020-05-16 16:29:23 +00:00
..
bg1.0
bg2.0
bg3.0
bg4.0
bg5.0
bg6.0
bg6.0.stdout
bg7.0
bg8.0
bg9.0
bg10.0
bg10.0.stdout
env1.0 sh: Add test for exported but unset variables 2019-01-03 20:23:12 +00:00
fork1.0
fork2.0
fork3.0
func1.0
func2.0
func3.0
hash1.0
int-cmd1.0
killed1.0
killed2.0
Makefile sh: Fix double INTON with vfork 2020-05-16 16:29:23 +00:00
Makefile.depend DIRDEPS_BUILD: Connect MK_TESTS. 2016-03-09 22:46:01 +00:00
not1.0
not2.0
path1.0
pipefail1.0 sh: Add set -o pipefail 2019-02-24 21:05:13 +00:00
pipefail2.42 sh: Add set -o pipefail 2019-02-24 21:05:13 +00:00
pipefail3.42 sh: Add set -o pipefail 2019-02-24 21:05:13 +00:00
pipefail4.42 sh: Add set -o pipefail 2019-02-24 21:05:13 +00:00
pipefail5.42 sh: Add set -o pipefail 2019-02-24 21:05:13 +00:00
pipefail6.42 sh: Add set -o pipefail 2019-02-24 21:05:13 +00:00
pipefail7.0 sh: Add set -o pipefail 2019-02-24 21:05:13 +00:00
redir1.0
redir2.0
redir3.0
redir4.0
redir5.0
redir6.0
redir7.0
set-C1.0 sh: Add simple test for 'set -C' (noclobber). 2016-11-02 22:33:37 +00:00
set-n1.0
set-n2.0
set-n3.0
set-n4.0
set-x1.0
set-x2.0
set-x3.0
set-x4.0 sh: Make sure output suitable as shell input is also printable. 2014-12-14 16:26:19 +00:00
shellproc1.0
shellproc2.0 sh: Test that executing various binary files is rejected 2019-12-30 21:32:55 +00:00
shellproc3.0 sh: Test that executing various binary files is rejected 2019-12-30 21:32:55 +00:00
shellproc4.0 sh: Test that executing various binary files is rejected 2019-12-30 21:32:55 +00:00
shellproc5.0 sh: Test that executing various binary files is rejected 2019-12-30 21:32:55 +00:00
subshell1.0
subshell1.0.stdout
subshell2.0
subshell3.0
subshell4.0
unknown1.0
unknown2.0 sh: Fix double INTON with vfork 2020-05-16 16:29:23 +00:00
var-assign1.0