SMB3: Add handling for different FSCTL access flags
authorSteve French <stfrench@microsoft.com>
Thu, 11 Apr 2019 18:53:17 +0000 (13:53 -0500)
committerSteve French <stfrench@microsoft.com>
Wed, 8 May 2019 04:24:55 +0000 (23:24 -0500)
DesiredAccess field in SMB3 open request needs
to be set differently for READ vs. WRITE ioctls
(not just ones that request both).

Originally noticed by Pavel

Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
fs/cifs/smb2ops.c

index ed8c2ba..08ff044 100644 (file)
@@ -1389,7 +1389,15 @@ smb2_ioctl_query_info(const unsigned int xid,
                switch (qi.info_type & FSCTL_DEVICE_ACCESS_MASK) {
                case FSCTL_DEVICE_ACCESS_FILE_READ_WRITE_ACCESS:
                        oparms.desired_access = FILE_READ_DATA | FILE_WRITE_DATA | FILE_READ_ATTRIBUTES | SYNCHRONIZE;
-                       ;
+                       break;
+               case FSCTL_DEVICE_ACCESS_FILE_ANY_ACCESS:
+                       oparms.desired_access = GENERIC_ALL;
+                       break;
+               case FSCTL_DEVICE_ACCESS_FILE_READ_ACCESS:
+                       oparms.desired_access = GENERIC_READ;
+                       break;
+               case FSCTL_DEVICE_ACCESS_FILE_WRITE_ACCESS:
+                       oparms.desired_access = GENERIC_WRITE;
                        break;
                }
        }