- only mask out the generic rights flags in RtlMapGenericMask()
authorThomas Bluemel <thomas@reactsoft.com>
Sun, 20 Mar 2005 13:53:54 +0000 (13:53 +0000)
committerThomas Bluemel <thomas@reactsoft.com>
Sun, 20 Mar 2005 13:53:54 +0000 (13:53 +0000)
- only deny access when requested rights can't be granted in IoCheckDesiredAccess()

svn path=/trunk/; revision=14222

reactos/ntoskrnl/io/share.c
reactos/ntoskrnl/se/access.c

index cac060f..16d6c9c 100644 (file)
@@ -280,12 +280,15 @@ NTSTATUS STDCALL
 IoCheckDesiredAccess(IN OUT PACCESS_MASK DesiredAccess,
                     IN ACCESS_MASK GrantedAccess)
 {
+  PAGED_CODE();
+  
   RtlMapGenericMask(DesiredAccess,
                    IoFileObjectType->Mapping);
-  if ((*DesiredAccess & GrantedAccess) != GrantedAccess)
-    return(STATUS_ACCESS_DENIED);
 
-  return(STATUS_SUCCESS);
+  if ((~(*DesiredAccess) & GrantedAccess) != 0)
+    return STATUS_ACCESS_DENIED;
+  else
+    return STATUS_SUCCESS;
 }
 
 
index 1e49fce..62687de 100644 (file)
@@ -72,7 +72,7 @@ RtlMapGenericMask (
        if (*AccessMask & GENERIC_ALL)
                *AccessMask |= GenericMapping->GenericAll;
 
-       *AccessMask &= 0x0FFFFFFF;
+       *AccessMask &= ~(GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE | GENERIC_ALL);
 }
 
 /*