mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 06:10:56 +00:00
selftests/exec: Perform script checks with /bin/bash
It seems some shells linked to /bin/sh don't have consistent behavior with error codes on execution failures. Explicitly use /bin/bash so that "not found" errors are correctly generated. Repeating the comment from the test: /* * Execute as a long pathname relative to "/". If this is a script, * the interpreter will launch but fail to open the script because its * name ("/dev/fd/5/xxx....") is bigger than PATH_MAX. * * The failure code is usually 127 (POSIX: "If a command is not found, * the exit status shall be 127."), but some systems give 126 (POSIX: * "If the command name is found, but it is not an executable utility, * the exit status shall be 126."), so allow either. */ Reported-by: Muhammad Usama Anjum <usama.anjum@collabora.com> Closes: https://lore.kernel.org/lkml/02c8bf8e-1934-44ab-a886-e065b37366a7@collabora.com/ Signed-off-by: Kees Cook <keescook@chromium.org> --- Cc: Eric Biederman <ebiederm@xmission.com> Cc: Shuah Khan <shuah@kernel.org> Cc: Mark Brown <broonie@kernel.org> Cc: linux-mm@kvack.org Cc: linux-kselftest@vger.kernel.org
This commit is contained in:
parent
d3f0d7bbae
commit
1710742994
1 changed files with 1 additions and 1 deletions
|
@ -393,7 +393,7 @@ static int run_tests(void)
|
||||||
static void prerequisites(void)
|
static void prerequisites(void)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
const char *script = "#!/bin/sh\nexit $*\n";
|
const char *script = "#!/bin/bash\nexit $*\n";
|
||||||
|
|
||||||
/* Create ephemeral copies of files */
|
/* Create ephemeral copies of files */
|
||||||
exe_cp("execveat", "execveat.ephemeral");
|
exe_cp("execveat", "execveat.ephemeral");
|
||||||
|
|
Loading…
Reference in a new issue