mpr: Fix some memory leaks

Andrew Talbot andrew.talbot at talbotville.com
Wed Jun 25 16:42:04 CDT 2008


Changelog:
    mpr: Fix some memory leaks.

diff --git a/dlls/mpr/wnet.c b/dlls/mpr/wnet.c
index 32bc255..9952f46 100644
--- a/dlls/mpr/wnet.c
+++ b/dlls/mpr/wnet.c
@@ -1312,12 +1312,20 @@ DWORD WINAPI WNetGetResourceInformationA( LPNETRESOURCEA lpNetResource,
         ret = _thunkNetResourceArrayAToW(lpNetResource, &count, lpNetResourceW, &size);
         if (ret == WN_MORE_DATA)
         {
-            lpNetResourceW = HeapAlloc(GetProcessHeap(), 0, size);
-            if (lpNetResourceW)
+            LPNETRESOURCEW temp = HeapReAlloc(GetProcessHeap(), 0, lpNetResourceW, size);
+
+            if (temp)
+            {
+                lpNetResourceW = temp;
+                temp = NULL;
                 ret = _thunkNetResourceArrayAToW(lpNetResource,
                         &count, lpNetResourceW, &size);
+            }
             else
+            {
+                HeapFree(GetProcessHeap(), 0, lpNetResourceW);
                 ret = WN_OUT_OF_MEMORY;
+            }
         }
         if (ret == WN_SUCCESS)
         {
@@ -1343,6 +1351,7 @@ DWORD WINAPI WNetGetResourceInformationA( LPNETRESOURCEA lpNetResource,
                 {
                     ret = _thunkNetResourceArrayWToA(lpBufferW,
                             &count, lpBuffer, cbBuffer);
+                    HeapFree(GetProcessHeap(), 0, lpNetResourceW);
                     lpNetResourceW = lpBufferW;
                     size = sizeof(NETRESOURCEA);
                     size += WideCharToMultiByte(CP_ACP, 0, lpNetResourceW->lpRemoteName,



More information about the wine-patches mailing list