[WIN32K:NTUSER]
authorThomas Faber <thomas.faber@reactos.org>
Sat, 16 Apr 2016 10:22:35 +0000 (10:22 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Sat, 16 Apr 2016 10:22:35 +0000 (10:22 +0000)
- Don't leak desktop reference in failure case of NtUserSwitchDesktop

svn path=/trunk/; revision=71167

reactos/win32ss/user/ntuser/desktop.c

index 7cd27d6..2985308 100644 (file)
@@ -1791,12 +1791,14 @@ NtUserSwitchDesktop(HDESK hdesk)
 
    if (PsGetCurrentProcessSessionId() != pdesk->rpwinstaParent->dwSessionId)
    {
 
    if (PsGetCurrentProcessSessionId() != pdesk->rpwinstaParent->dwSessionId)
    {
+      ObDereferenceObject(pdesk);
       ERR("NtUserSwitchDesktop called for a desktop of a different session\n");
       RETURN(FALSE);
    }
 
    if(pdesk == gpdeskInputDesktop)
    {
       ERR("NtUserSwitchDesktop called for a desktop of a different session\n");
       RETURN(FALSE);
    }
 
    if(pdesk == gpdeskInputDesktop)
    {
+       ObDereferenceObject(pdesk);
        WARN("NtUserSwitchDesktop called for active desktop\n");
        RETURN(TRUE);
    }
        WARN("NtUserSwitchDesktop called for active desktop\n");
        RETURN(TRUE);
    }