Use access mode instead of open flags to determine needed permissions (CVE-2008-0001)
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 15 Jan 2008 21:39:01 +0000 (23:39 +0200)
committerAdrian Bunk <bunk@kernel.org>
Tue, 15 Jan 2008 23:48:15 +0000 (01:48 +0200)
commitfb7a7420ea718a6504e5c620ada0e42b23446b27
tree72a6690d9bbf86ab95f5ef5c72d0954ed2bcd8bc
parent0c0b10ef376c7b320197160f21d6c626ab0a6f4d
Use access mode instead of open flags to determine needed permissions (CVE-2008-0001)

patch 974a9f0b47da74e28f68b9c8645c3786aa5ace1a in mainline

Way back when (in commit 834f2a4a1554dc5b2598038b3fe8703defcbe467, aka
"VFS: Allow the filesystem to return a full file pointer on open intent"
to be exact), Trond changed the open logic to keep track of the original
flags to a file open, in order to pass down the the intent of a dentry
lookup to the low-level filesystem.

However, when doing that reorganization, it changed the meaning of
namei_flags, and thus inadvertently changed the test of access mode for
directories (and RO filesystem) to use the wrong flag.  So fix those
test back to use access mode ("acc_mode") rather than the open flag
("flag").

Issue noticed by Bill Roman at Datalight.

Reported-and-tested-by: Bill Roman <bill.roman@datalight.com>
Acked-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Acked-by: Al Viro <viro@ZenIV.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Adrian Bunk <bunk@kernel.org>
fs/namei.c