mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
selftests/lkdtm: Avoid needing explicit sub-shell
Some environments do not set $SHELL when running tests. There's no
need to use $SHELL here anyway, since "cat" can be used to receive any
delivered signals from the kernel. Additionally avoid using bash-isms
in the command, and record stderr for posterity.
Fixes: 46d1a0f03d
("selftests/lkdtm: Add tests for LKDTM targets")
Cc: stable@vger.kernel.org
Suggested-by: Guillaume Tucker <guillaume.tucker@collabora.com>
Suggested-by: David Laight <David.Laight@ACULAB.COM>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20210623203936.3151093-2-keescook@chromium.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d4e1406618
commit
04831e892b
@ -76,10 +76,14 @@ fi
|
||||
# Save existing dmesg so we can detect new content below
|
||||
dmesg > "$DMESG"
|
||||
|
||||
# Most shells yell about signals and we're expecting the "cat" process
|
||||
# to usually be killed by the kernel. So we have to run it in a sub-shell
|
||||
# and silence errors.
|
||||
($SHELL -c 'cat <(echo '"$test"') >'"$TRIGGER" 2>/dev/null) || true
|
||||
# Since the kernel is likely killing the process writing to the trigger
|
||||
# file, it must not be the script's shell itself. i.e. we cannot do:
|
||||
# echo "$test" >"$TRIGGER"
|
||||
# Instead, use "cat" to take the signal. Since the shell will yell about
|
||||
# the signal that killed the subprocess, we must ignore the failure and
|
||||
# continue. However we don't silence stderr since there might be other
|
||||
# useful details reported there in the case of other unexpected conditions.
|
||||
echo "$test" | cat >"$TRIGGER" || true
|
||||
|
||||
# Record and dump the results
|
||||
dmesg | comm --nocheck-order -13 "$DMESG" - > "$LOG" || true
|
||||
|
Loading…
Reference in New Issue
Block a user