ole32: Fix some memory leaks

Andrew Talbot andrew.talbot at talbotville.com
Sat Sep 29 09:15:34 CDT 2007


Changelog:
    ole32: Fix some memory leaks.

diff --git a/dlls/ole32/compositemoniker.c b/dlls/ole32/compositemoniker.c
index c49e9b8..88f141e 100644
--- a/dlls/ole32/compositemoniker.c
+++ b/dlls/ole32/compositemoniker.c
@@ -1817,8 +1817,10 @@ CompositeMonikerImpl_Construct(IMoniker*
                 This->tabSize+=BLOCK_TAB_SIZE;
                 This->tabMoniker=HeapReAlloc(GetProcessHeap(),0,This->tabMoniker,This->tabSize*sizeof(IMoniker));
 
-                if (This->tabMoniker==NULL)
+                if (This->tabMoniker==NULL) {
+                    HeapFree(GetProcessHeap(), 0, This);
                     return E_OUTOFMEMORY;
+                }
             }
         }
 
@@ -1867,8 +1869,10 @@ CompositeMonikerImpl_Construct(IMoniker*
 
             This->tabMoniker=HeapReAlloc(GetProcessHeap(),0,This->tabMoniker,This->tabSize*sizeof(IMoniker));
 
-            if (This->tabMoniker==NULL)
-            return E_OUTOFMEMORY;
+            if (This->tabMoniker==NULL) {
+                HeapFree(GetProcessHeap(), 0, This);
+                return E_OUTOFMEMORY;
+            }
         }
     }
     else{
@@ -1906,8 +1910,10 @@ CompositeMonikerImpl_Construct(IMoniker*
 
                 This->tabMoniker=HeapReAlloc(GetProcessHeap(),0,This->tabMoniker,This->tabSize*sizeof(IMoniker));
 
-                if (This->tabMoniker==NULL)
+                if (This->tabMoniker==NULL) {
+                    HeapFree(GetProcessHeap(), 0, This);
                     return E_OUTOFMEMORY;
+                }
             }
         }
 



More information about the wine-patches mailing list