s3/smbd: handle EACCES when fetching DOS attributes from xattr
authorRalph Boehme <slow@samba.org>
Thu, 8 Jun 2017 17:10:20 +0000 (19:10 +0200)
committerRalph Boehme <slow@samba.org>
Tue, 8 Aug 2017 19:23:10 +0000 (21:23 +0200)
commitc54fcb7cbd0de244eed4134e877da6e9c16e7aab
tree82ab387baa272ce7084cd597f689605907577462
parent9de1411d9e7c7ac3da544345d4dea7fd73dff01b
s3/smbd: handle EACCES when fetching DOS attributes from xattr

When trying to fetch the DOS attributes xattr via SMB_VFS_GETXATTR() if
the filesystem doesn't grant read access to the file the xattr read
request fails with EACCESS.

But according to MS-FSA 2.1.5.1.2.1 "Algorithm to Check Access to an
Existing File" FILE_LIST_DIRECTORY on a directory implies
FILE_READ_ATTRIBUTES for directory entries.

So if the user can open the parent directory for reading this implies
FILE_LIST_DIRECTORY and we can safely call SMB_VFS_GETXATTR() as root,
ensuring we can read the DOS attributes xattr.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=12944

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Christof Schmitt <cs@samba.org>
source3/smbd/dosmode.c