eCryptfs: Properly check for O_RDONLY flag before doing privileged open
authorTyler Hicks <tyhicks@canonical.com>
Tue, 12 Jun 2012 18:17:01 +0000 (11:17 -0700)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 25 Jul 2012 03:11:44 +0000 (04:11 +0100)
commit03d200117c06fde714344f8f4f0301f609959b53
tree58ce81aed74e9af7791c3dcee4a1c57e1d919a39
parentb8b1e1ea3fa0b1de9a5eead6bab0c563617b9a2b
eCryptfs: Properly check for O_RDONLY flag before doing privileged open

commit 9fe79d7600497ed8a95c3981cbe5b73ab98222f0 upstream.

If the first attempt at opening the lower file read/write fails,
eCryptfs will retry using a privileged kthread. However, the privileged
retry should not happen if the lower file's inode is read-only because a
read/write open will still be unsuccessful.

The check for determining if the open should be retried was intended to
be based on the access mode of the lower file's open flags being
O_RDONLY, but the check was incorrectly performed. This would cause the
open to be retried by the privileged kthread, resulting in a second
failed open of the lower file. This patch corrects the check to
determine if the open request should be handled by the privileged
kthread.

Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
fs/ecryptfs/kthread.c