From 46394ab80db2aee79ef78735cf3634056a1babd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Thu, 17 Jun 2021 15:42:07 +0200 Subject: [PATCH] [RTL] In RtlReleasePrivilege, raise exception if restoring old privileges fails CORE-17637 --- sdk/lib/rtl/priv.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sdk/lib/rtl/priv.c b/sdk/lib/rtl/priv.c index 34b860f1975..164bd80f75f 100644 --- a/sdk/lib/rtl/priv.c +++ b/sdk/lib/rtl/priv.c @@ -387,9 +387,12 @@ RtlReleasePrivilege(IN PVOID ReturnedState) else { /* Otherwise, restore old state */ - ZwAdjustPrivilegesToken(State->Token, FALSE, - State->OldPrivileges, 0, NULL, NULL); - + Status = ZwAdjustPrivilegesToken(State->Token, FALSE, + State->OldPrivileges, 0, NULL, NULL); + if (!NT_SUCCESS(Status)) + { + RtlRaiseStatus(Status); + } } /* If we used a different buffer for old privileges, just free it */