Author: gedmurphy
Date: Tue Jun 14 18:01:02 2016
New Revision: 71636

URL: http://svn.reactos.org/svn/reactos?rev=71636&view=rev
Log:
[NTOS]
- Properly implement ObpValidateAccessMask
- If the security descriptor has a system acl, the caller will need access to it

Modified:
    trunk/reactos/ntoskrnl/ob/obhandle.c

Modified: trunk/reactos/ntoskrnl/ob/obhandle.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ob/obhandle.c?rev=71636&r1=71635&r2=71636&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ob/obhandle.c        [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ob/obhandle.c        [iso-8859-1] Tue Jun 14 
18:01:02 2016
@@ -484,7 +484,22 @@
 NTAPI
 ObpValidateAccessMask(IN PACCESS_STATE AccessState)
 {
-    /* TODO */
+    PISECURITY_DESCRIPTOR SecurityDescriptor;
+
+    /* We're only interested if the object for this access state has an SD */
+    SecurityDescriptor = AccessState->SecurityDescriptor;
+    if (SecurityDescriptor)
+    {
+        /* Check if the SD has a system ACL but hasn't been granted access to 
get/set it */
+        if ((SecurityDescriptor->Control & SE_SACL_PRESENT) &&
+            !(AccessState->PreviouslyGrantedAccess & ACCESS_SYSTEM_SECURITY))
+        {
+            /* We're gonna need access */
+            AccessState->RemainingDesiredAccess |= ACCESS_SYSTEM_SECURITY;
+        }
+    }
+
+    /* This can't fail */
     return STATUS_SUCCESS;
 }
 


Reply via email to