From: Trond Myklebust The check in prepare_binfmt() for inode->i_mode & 0111 is redundant, since open_exec() will already have done that. Signed-off-by: Trond Myklebust Cc: Al Viro Cc: Christoph Hellwig Cc: Chris Wright Signed-off-by: Andrew Morton --- fs/exec.c | 6 ------ 1 file changed, 6 deletions(-) diff -puN fs/exec.c~vfs-remove-redundant-open-coded-mode-bit-check-in-prepare_binfmt fs/exec.c --- a/fs/exec.c~vfs-remove-redundant-open-coded-mode-bit-check-in-prepare_binfmt +++ a/fs/exec.c @@ -919,12 +919,6 @@ int prepare_binprm(struct linux_binprm * int retval; mode = inode->i_mode; - /* - * Check execute perms again - if the caller has CAP_DAC_OVERRIDE, - * generic_permission lets a non-executable through - */ - if (!(mode & 0111)) /* with at least _one_ execute bit set */ - return -EACCES; if (bprm->file->f_op == NULL) return -EACCES; _