[PATCH 0/4] Relocate execve() sanity checks

From: Kees Cook
Date: Mon May 18 2020 - 01:55:13 EST


Hi,

While looking at the code paths for the proposed O_MAYEXEC flag, I saw
some things that looked like they should be fixed up.

exec: Change uselib(2) IS_SREG() failure to EACCES
This just regularizes the return code on uselib(2).

exec: Relocate S_ISREG() check
This moves the S_ISREG() check even earlier than it was already.

exec: Relocate path_noexec() check
This adds the path_noexec() check to the same place as the
S_ISREG() check.

fs: Include FMODE_EXEC when converting flags to f_mode
This seemed like an oversight, but I suspect there is some
reason I couldn't find for why FMODE_EXEC doesn't get set in
f_mode and just stays in f_flags.

Thanks!

-Kees


Kees Cook (4):
exec: Change uselib(2) IS_SREG() failure to EACCES
exec: Relocate S_ISREG() check
exec: Relocate path_noexec() check
fs: Include FMODE_EXEC when converting flags to f_mode

fs/exec.c | 13 +++++++++----
fs/namei.c | 5 +++++
fs/open.c | 6 ------
include/linux/fs.h | 3 ++-
include/linux/fsnotify.h | 4 ++--
5 files changed, 18 insertions(+), 13 deletions(-)

--
2.20.1