Subtle change. Microsoft SMB2 tests return different access mask than for SMB1 with...
authorJeremy Allison <jra@samba.org>
Fri, 8 Apr 2011 23:18:56 +0000 (16:18 -0700)
committerJeremy Allison <jra@samba.org>
Fri, 8 Apr 2011 23:18:56 +0000 (16:18 -0700)
source3/smbd/open.c

index c03200e511345f89c830a54778fcc901280983e6..5c449fcb86ad6028c63db246d613b6641481939a 100644 (file)
@@ -2266,7 +2266,18 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn,
         * According to Samba4, SEC_FILE_READ_ATTRIBUTE is always granted,
         * but we don't have to store this - just ignore it on access check.
         */
-       fsp->access_mask = access_mask;
+       if (conn->sconn->using_smb2) {
+               /*
+                * SMB2 doesn't return it (according to Microsoft tests).
+                * Test Case: TestSuite_ScenarioNo009GrantedAccessTestS0
+                * File created with access = 0x7 (Read, Write, Delete)
+                * Query Info on file returns 0x87 (Read, Write, Delete, Read Attributes)
+                */
+               fsp->access_mask = access_mask;
+       } else {
+               /* But SMB1 does. */
+               fsp->access_mask = access_mask | FILE_READ_ATTRIBUTES;
+       }
 
        if (file_existed) {
                /* stat opens on existing files don't get oplocks. */