From f80ee415c1793d1ab26901d32cc3fddd5293c2f7 Mon Sep 17 00:00:00 2001 From: "kunming.xie" Date: Thu, 18 May 2017 17:50:05 +0800 Subject: Fix hdesk handle leak in vdagent Signed-off-by: kunming.xie Acked-by: Frediano Ziglio --- vdagent/vdagent.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vdagent/vdagent.cpp b/vdagent/vdagent.cpp index c25a077..6cb889f 100644 --- a/vdagent/vdagent.cpp +++ b/vdagent/vdagent.cpp @@ -423,6 +423,7 @@ void VDAgent::input_desktop_message_loop() } if (!SetThreadDesktop(hdesk)) { vd_printf("SetThreadDesktop failed %lu", GetLastError()); + CloseDesktop(hdesk); _running = false; return; } @@ -431,6 +432,7 @@ void VDAgent::input_desktop_message_loop() } else { vd_printf("GetUserObjectInformation failed %lu", GetLastError()); } + CloseDesktop(hdesk); // loading the display settings for the current session's logged on user only // after 1) we receive logon event, and 2) the desktop switched from Winlogon @@ -479,7 +481,6 @@ void VDAgent::input_desktop_message_loop() } WTSUnRegisterSessionNotification(_hwnd); DestroyWindow(_hwnd); - CloseDesktop(hdesk); } void VDAgent::event_dispatcher(DWORD timeout, DWORD wake_mask) -- cgit v1.2.3