From d095c2398e7a4e15c282bc50253631bc47565e68 Mon Sep 17 00:00:00 2001 From: louyihua Date: Wed, 21 Dec 2011 08:50:47 +0800 Subject: [PATCH] libfreerdp-utils: fix a handle leak while creating threads under win32 --- libfreerdp-utils/thread.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libfreerdp-utils/thread.c b/libfreerdp-utils/thread.c index 4dfdd59..d6b3b0b 100644 --- a/libfreerdp-utils/thread.c +++ b/libfreerdp-utils/thread.c @@ -24,6 +24,9 @@ #ifdef _WIN32 #include +#ifdef _MSC_VER +#include +#endif #endif #include @@ -49,8 +52,11 @@ void freerdp_thread_start(freerdp_thread* thread, void* func, void* arg) #ifdef _WIN32 { - DWORD th; - CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)func, arg, 0, &th); +# ifdef _MSC_VER + CloseHandle((HANDLE)_beginthreadex(NULL, 0, func, arg, 0, NULL)); +#else + CloseHandle(CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)func, arg, 0, NULL)); +#endif } #else { -- 2.7.4