Author: tkreuzer
Date: Sat Jan 11 15:23:53 2014
New Revision: 61582
URL:
http://svn.reactos.org/svn/reactos?rev=61582&view=rev
Log:
[NTOSKRNL]
Small optimization of SepPrivilegeCheck
Modified:
trunk/reactos/ntoskrnl/se/priv.c
Modified: trunk/reactos/ntoskrnl/se/priv.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/se/priv.c?rev=615…
==============================================================================
--- trunk/reactos/ntoskrnl/se/priv.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/se/priv.c [iso-8859-1] Sat Jan 11 15:23:53 2014
@@ -90,7 +90,7 @@
Required = (PrivilegeControl & PRIVILEGE_SET_ALL_NECESSARY) ? PrivilegeCount :
1;
/* Loop all requested privileges until we found the required ones */
- for (i = 0; i < PrivilegeCount && Required > 0; i++)
+ for (i = 0; i < PrivilegeCount; i++)
{
/* Loop the privileges of the token */
for (j = 0; j < Token->PrivilegeCount; j++)
@@ -107,6 +107,13 @@
{
Privileges[i].Attributes |= SE_PRIVILEGE_USED_FOR_ACCESS;
Required--;
+
+ /* Check if we have found all privileges */
+ if (Required == 0)
+ {
+ /* We're done! */
+ return TRUE;
+ }
}
/* Leave the inner loop */
@@ -115,8 +122,9 @@
}
}
- /* Return whether we found all required privileges */
- return (Required == 0);
+ /* When we reached this point, we did not find all privileges */
+ NT_ASSERT(Required > 0);
+ return FALSE;
}
NTSTATUS