Author: ion
Date: Sat Jul 23 17:17:06 2011
New Revision: 52811
URL:
http://svn.reactos.org/svn/reactos?rev=52811&view=rev
Log:
[KERNEL32]: SleepEx forgot to de-activate the SxS frame.
Modified:
trunk/reactos/dll/win32/kernel32/client/synch.c
trunk/reactos/lib/rtl/actctx.c
Modified: trunk/reactos/dll/win32/kernel32/client/synch.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/client/synch.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/client/synch.c [iso-8859-1] Sat Jul 23 17:17:06 2011
@@ -702,6 +702,9 @@
errCode = NtDelayExecution((BOOLEAN)bAlertable, TimePtr);
}
while ((bAlertable) && (errCode == STATUS_ALERTED));
+
+ /* Cleanup the activation context */
+ if (bAlertable) RtlDeactivateActivationContextUnsafeFast(&ActCtx);
/* Return the correct code */
return (errCode == STATUS_USER_APC) ? WAIT_IO_COMPLETION : 0;
Modified: trunk/reactos/lib/rtl/actctx.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/actctx.c?rev=52811…
==============================================================================
--- trunk/reactos/lib/rtl/actctx.c [iso-8859-1] (original)
+++ trunk/reactos/lib/rtl/actctx.c [iso-8859-1] Sat Jul 23 17:17:06 2011
@@ -2832,7 +2832,10 @@
frame = &Frame->Frame;
if (!frame)
+ {
+ DPRINT1("No top frame!\n");
RtlRaiseStatus( STATUS_SXS_INVALID_DEACTIVATION );
+ }
/* pop everything up to and including frame */
NtCurrentTeb()->ActivationContextStackPointer->ActiveFrame =
frame->Previous;