=?UTF-8?Q?Andr=C3=A9=20Hentschel=20?=: dplayx: Reorder some code to avoid memory leak (coverity).

Alexandre Julliard julliard at winehq.org
Tue Oct 30 13:27:35 CDT 2012


Module: wine
Branch: master
Commit: 3dd7c64c257ac801a0679a7b2be5388fe68ccce5
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=3dd7c64c257ac801a0679a7b2be5388fe68ccce5

Author: André Hentschel <nerv at dawncrow.de>
Date:   Mon Oct 29 20:16:36 2012 +0100

dplayx: Reorder some code to avoid memory leak (coverity).

---

 dlls/dplayx/dplay.c |   13 ++++---------
 1 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/dlls/dplayx/dplay.c b/dlls/dplayx/dplay.c
index 7636546..29212bc 100644
--- a/dlls/dplayx/dplay.c
+++ b/dlls/dplayx/dplay.c
@@ -1126,10 +1126,6 @@ DP_SetGroupData( lpGroupData lpGData, DWORD dwFlags,
   /* Reallocate for new data */
   if( lpData != NULL )
   {
-    LPVOID lpNewData = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
-                                  sizeof( dwDataSize ) );
-    CopyMemory( lpNewData, lpData, dwDataSize );
-
     if( dwFlags & DPSET_LOCAL )
     {
       lpGData->lpLocalData     = lpData;
@@ -1137,7 +1133,8 @@ DP_SetGroupData( lpGroupData lpGData, DWORD dwFlags,
     }
     else
     {
-      lpGData->lpRemoteData     = lpNewData;
+      lpGData->lpRemoteData = HeapAlloc( GetProcessHeap(), 0, dwDataSize );
+      CopyMemory( lpGData->lpRemoteData, lpData, dwDataSize );
       lpGData->dwRemoteDataSize = dwDataSize;
     }
   }
@@ -1330,9 +1327,6 @@ DP_SetPlayerData( lpPlayerData lpPData, DWORD dwFlags,
   /* Reallocate for new data */
   if( lpData != NULL )
   {
-    LPVOID lpNewData = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
-                                  sizeof( dwDataSize ) );
-    CopyMemory( lpNewData, lpData, dwDataSize );
 
     if( dwFlags & DPSET_LOCAL )
     {
@@ -1341,7 +1335,8 @@ DP_SetPlayerData( lpPlayerData lpPData, DWORD dwFlags,
     }
     else
     {
-      lpPData->lpRemoteData     = lpNewData;
+      lpPData->lpRemoteData = HeapAlloc( GetProcessHeap(), 0, dwDataSize );
+      CopyMemory( lpPData->lpRemoteData, lpData, dwDataSize );
       lpPData->dwRemoteDataSize = dwDataSize;
     }
   }




More information about the wine-cvs mailing list