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