- Prevent from calling PsTerminateCurrentThread from within an apc if
PsTerminateThread was already called.
Modified: trunk/reactos/ntoskrnl/ps/kill.c
_____
Modified: trunk/reactos/ntoskrnl/ps/kill.c
--- trunk/reactos/ntoskrnl/ps/kill.c 2005-01-05 19:03:21 UTC (rev
12828)
+++ trunk/reactos/ntoskrnl/ps/kill.c 2005-01-05 19:04:25 UTC (rev
12829)
@@ -239,6 +239,12 @@
PVOID SystemArgument1,
PVOID SystemArgument2)
{
+ PETHREAD EThread = PsGetCurrentThread();
+ if (EThread->HasTerminated)
+ {
+ /* Someone else has already called PsTerminateCurrentThread */
+ return;
+ }
PsTerminateCurrentThread(PsGetCurrentThread()->ExitStatus);
}