Commit 317a40ac authored by Stas Sergeev's avatar Stas Sergeev Committed by Linus Torvalds

[PATCH] honour MNT_NOEXEC for access()

Make access(X_OK) take the "noexec" mount option into account.
Signed-off-by: default avatarStas Sergeev <stsp@aknet.ru>
Cc: Jakub Jelinek <jakub@redhat.com>
Cc: Arjan van de Ven <arjan@infradead.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Hugh Dickins <hugh@veritas.com>
Cc: Ulrich Drepper <drepper@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent ed07536e
...@@ -249,9 +249,11 @@ int permission(struct inode *inode, int mask, struct nameidata *nd) ...@@ -249,9 +249,11 @@ int permission(struct inode *inode, int mask, struct nameidata *nd)
/* /*
* MAY_EXEC on regular files requires special handling: We override * MAY_EXEC on regular files requires special handling: We override
* filesystem execute permissions if the mode bits aren't set. * filesystem execute permissions if the mode bits aren't set or
* the fs is mounted with the "noexec" flag.
*/ */
if ((mask & MAY_EXEC) && S_ISREG(mode) && !(mode & S_IXUGO)) if ((mask & MAY_EXEC) && S_ISREG(mode) && (!(mode & S_IXUGO) ||
(nd && nd->mnt && (nd->mnt->mnt_flags & MNT_NOEXEC))))
return -EACCES; return -EACCES;
/* Ordinary permission routines do not understand MAY_APPEND. */ /* Ordinary permission routines do not understand MAY_APPEND. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment