{
return STATUS_INFO_LENGTH_MISMATCH;
}
+
+ if (!SeSinglePrivilegeCheck(SeDebugPrivilege, ExGetPreviousMode()))
+ {
+ return STATUS_ACCESS_DENIED;
+ }
+
NtGlobalFlag = ((PSYSTEM_FLAGS_INFORMATION) Buffer)->Flags;
return STATUS_SUCCESS;
}
&ResultLength);
/* Save the result length to the caller */
- if (UnsafeResultLength)
+ if (NT_SUCCESS(FStatus) && UnsafeResultLength)
*UnsafeResultLength = ResultLength;
}
}