[WIN32K]
authorJérôme Gardou <jerome.gardou@reactos.org>
Tue, 21 Oct 2014 10:45:55 +0000 (10:45 +0000)
committerJérôme Gardou <jerome.gardou@reactos.org>
Tue, 21 Oct 2014 10:45:55 +0000 (10:45 +0000)
 - reference the current process info structure while we're leaving win32k.
The process can die anytime while we're not looking.
CORE-8663 #resolve

svn path=/trunk/; revision=64863

reactos/win32ss/user/ntuser/message.c

index 4dbe59f..8d6a76c 100644 (file)
@@ -2882,6 +2882,13 @@ NtUserWaitForInputIdle( IN HANDLE hProcess,
 
     TRACE("WFII: ppi %p\n", W32Process);
     TRACE("WFII: waiting for %p\n", Handles[1] );
+
+    /*
+     * We must add a refcount to our current PROCESSINFO,
+     * because anything could happen (including process death) we're leaving win32k
+     */
+    IntReferenceProcessInfo(W32Process);
+
     do
     {
         UserLeave();
@@ -2935,6 +2942,7 @@ WaitExit:
        pti->pClientInfo->dwTIFlags = pti->TIF_flags;
     }
     W32Process->W32PF_flags &= ~W32PF_WAITFORINPUTIDLE;
+    IntDereferenceProcessInfo(W32Process);
     ObDereferenceObject(Process);
     UserLeave();
     return Status;