From c6c17242d23cd03acd5adc29969177881a7d04e1 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 8 Apr 2011 16:18:56 -0700 Subject: Subtle change. Microsoft SMB2 tests return different access mask than for SMB1 with raw.acls. --- source3/smbd/open.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/source3/smbd/open.c b/source3/smbd/open.c index c03200e511..5c449fcb86 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -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. */ -- cgit