dplayx: fix handle leak

Pierre Schweitzer pierre at reactos.org
Fri Dec 30 15:03:56 CST 2011


-------------- next part --------------
>From 66554d1dcb4160528c7966882daeafd1413e1972 Mon Sep 17 00:00:00 2001
From: Pierre Schweitzer <pierre at reactos.org>
Date: Fri, 30 Dec 2011 21:54:16 +0100
Subject: dplayx: Fix handle leak.

---
 dlls/dplayx/dplayx_messages.c |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/dlls/dplayx/dplayx_messages.c b/dlls/dplayx/dplayx_messages.c
index 2e34950..8b9320d 100644
--- a/dlls/dplayx/dplayx_messages.c
+++ b/dlls/dplayx/dplayx_messages.c
@@ -58,6 +58,7 @@ DWORD CreateLobbyMessageReceptionThread( HANDLE hNotifyEvent, HANDLE hStart,
 {
   DWORD           dwMsgThreadId;
   LPMSGTHREADINFO lpThreadInfo;
+  HANDLE          hThread;
 
   lpThreadInfo = HeapAlloc( GetProcessHeap(), 0, sizeof( *lpThreadInfo ) );
   if( lpThreadInfo == NULL )
@@ -83,21 +84,20 @@ DWORD CreateLobbyMessageReceptionThread( HANDLE hNotifyEvent, HANDLE hStart,
   lpThreadInfo->hDeath       = hDeath;
   lpThreadInfo->hSettingRead = hConnRead;
 
-  if( !CreateThread( NULL,                  /* Security attribs */
-                     0,                     /* Stack */
-                     DPL_MSG_ThreadMain,    /* Msg reception function */
-                     lpThreadInfo,          /* Msg reception func parameter */
-                     0,                     /* Flags */
-                     &dwMsgThreadId         /* Updated with thread id */
-                   )
-    )
+  hThread = CreateThread( NULL,                  /* Security attribs */
+                          0,                     /* Stack */
+                          DPL_MSG_ThreadMain,    /* Msg reception function */
+                          lpThreadInfo,          /* Msg reception func parameter */
+                          0,                     /* Flags */
+                          &dwMsgThreadId         /* Updated with thread id */
+                        );
+  if ( hThread == NULL )
   {
     ERR( "Unable to create msg thread\n" );
     goto error;
   }
 
-  /* FIXME: Should I be closing the handle to the thread or does that
-            terminate the thread? */
+  CloseHandle(hThread);
 
   return dwMsgThreadId;
 
-- 
1.7.4.1



More information about the wine-patches mailing list