avifil32: Fix some memory leaks

Andrew Talbot andrew.talbot at talbotville.com
Wed Sep 12 11:52:18 CDT 2007


Changelog:
    avifil32: Fix some memory leaks.

diff -urN a/dlls/avifil32/api.c b/dlls/avifil32/api.c
--- a/dlls/avifil32/api.c	2007-04-23 20:28:06.000000000 +0100
+++ b/dlls/avifil32/api.c	2007-09-12 17:31:59.000000000 +0100
@@ -1913,7 +1913,7 @@
 	  hres = AVIStreamReadFormat(pInStreams[curStream], sInfo.dwStart,
 				     lpBuffer, &lBufferSize);
 	  if (FAILED(hres))
-	    return hres;
+	    goto error;
 	  AVIStreamSetFormat(pOutStreams[curStream], sInfo.dwStart,
 			     lpBuffer, lBufferSize);
 
diff -urN a/dlls/avifil32/avifile.c b/dlls/avifil32/avifile.c
--- a/dlls/avifil32/avifile.c	2007-04-03 12:49:56.000000000 +0100
+++ b/dlls/avifil32/avifile.c	2007-09-12 17:32:29.000000000 +0100
@@ -1018,14 +1018,15 @@
       lppc->peNew[n].peFlags = 0;
     }
 
-    if (mmioSeek(This->paf->hmmio, This->paf->dwNextFramePos, SEEK_SET) == -1)
-      return AVIERR_FILEWRITE;
-    if (mmioCreateChunk(This->paf->hmmio, &ck, 0) != S_OK)
-      return AVIERR_FILEWRITE;
-    if (mmioWrite(This->paf->hmmio, (HPSTR)lppc, ck.cksize) != ck.cksize)
-      return AVIERR_FILEWRITE;
-    if (mmioAscend(This->paf->hmmio, &ck, 0) != S_OK)
+    if (mmioSeek(This->paf->hmmio, This->paf->dwNextFramePos, SEEK_SET) == -1 ||
+        mmioCreateChunk(This->paf->hmmio, &ck, 0) != S_OK ||
+        mmioWrite(This->paf->hmmio, (HPSTR)lppc, ck.cksize) != ck.cksize ||
+        mmioAscend(This->paf->hmmio, &ck, 0) != S_OK)
+    {
+      HeapFree(GetProcessHeap(), 0, lppc);
       return AVIERR_FILEWRITE;
+    }
+
     This->paf->dwNextFramePos += ck.cksize + 2 * sizeof(DWORD);
 
     HeapFree(GetProcessHeap(), 0, lppc);
@@ -1939,6 +1940,7 @@
       HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, pStream->nIdxFrames * sizeof(AVIINDEXENTRY));
     if (pStream->idxFrames == NULL && pStream->nIdxFrames > 0) {
       pStream->nIdxFrames = 0;
+      HeapFree(GetProcessHeap(), 0, lp);
       return AVIERR_MEMORY;
     }
   }



More information about the wine-patches mailing list