mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-30 05:42:46 +01: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 <[email protected]>
Closes: https://lore.kernel.org/lkml/[email protected]/
Signed-off-by: Kees Cook <[email protected]>
---
Cc: Eric Biederman <[email protected]>
Cc: Shuah Khan <[email protected]>
Cc: Mark Brown <[email protected]>
Cc: [email protected]
Cc: [email protected]
This commit is contained in:
1 parent
d3f0d7bbae
commit
1710742994
1 file changed
+1
-1
@@ -393,7 +393,7 @@ static int run_tests(void)
|
||||
static void prerequisites(void)
|
||||
{
|
||||
int fd;
|
||||
const char *script = "#!/bin/sh\nexit $*\n";
|
||||
const char *script = "#!/bin/bash\nexit $*\n";
|
||||
|
||||
/* Create ephemeral copies of files */
|
||||
exe_cp("execveat", "execveat.ephemeral");
|
||||
|
||||
Reference in new issue
Block a user