Skip to content

Commit b32273e

Browse files
committed
Merge tag 'execve-v6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
Pull execve updates from Kees Cook: - Drop needless error path code in remove_arg_zero() (Li kunyu, Kees Cook) - binfmt_elf_efpic: Don't use missing interpreter's properties (Max Filippov) - Use /bin/bash for execveat selftests * tag 'execve-v6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: exec: Simplify remove_arg_zero() error path selftests/exec: Perform script checks with /bin/bash exec: Delete unnecessary statements in remove_arg_zero() fs: binfmt_elf_efpic: don't use missing interpreter's properties
2 parents 41cb8c3 + 725d502 commit b32273e

File tree

3 files changed

+5
-10
lines changed

3 files changed

+5
-10
lines changed

fs/binfmt_elf_fdpic.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ static int load_elf_fdpic_binary(struct linux_binprm *bprm)
320320
else
321321
executable_stack = EXSTACK_DEFAULT;
322322

323-
if (stack_size == 0) {
323+
if (stack_size == 0 && interp_params.flags & ELF_FDPIC_FLAG_PRESENT) {
324324
stack_size = interp_params.stack_size;
325325
if (interp_params.flags & ELF_FDPIC_FLAG_EXEC_STACK)
326326
executable_stack = EXSTACK_ENABLE_X;

fs/exec.c

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1719,7 +1719,6 @@ static int prepare_binprm(struct linux_binprm *bprm)
17191719
*/
17201720
int remove_arg_zero(struct linux_binprm *bprm)
17211721
{
1722-
int ret = 0;
17231722
unsigned long offset;
17241723
char *kaddr;
17251724
struct page *page;
@@ -1730,10 +1729,8 @@ int remove_arg_zero(struct linux_binprm *bprm)
17301729
do {
17311730
offset = bprm->p & ~PAGE_MASK;
17321731
page = get_arg_page(bprm, bprm->p, 0);
1733-
if (!page) {
1734-
ret = -EFAULT;
1735-
goto out;
1736-
}
1732+
if (!page)
1733+
return -EFAULT;
17371734
kaddr = kmap_local_page(page);
17381735

17391736
for (; offset < PAGE_SIZE && kaddr[offset];
@@ -1746,10 +1743,8 @@ int remove_arg_zero(struct linux_binprm *bprm)
17461743

17471744
bprm->p++;
17481745
bprm->argc--;
1749-
ret = 0;
17501746

1751-
out:
1752-
return ret;
1747+
return 0;
17531748
}
17541749
EXPORT_SYMBOL(remove_arg_zero);
17551750

tools/testing/selftests/exec/execveat.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ static int run_tests(void)
393393
static void prerequisites(void)
394394
{
395395
int fd;
396-
const char *script = "#!/bin/sh\nexit $*\n";
396+
const char *script = "#!/bin/bash\nexit $*\n";
397397

398398
/* Create ephemeral copies of files */
399399
exe_cp("execveat", "execveat.ephemeral");

0 commit comments

Comments
 (0)