Module: wine Branch: master Commit: 45bd38ece3ce8dda36ae1c3e8d5cac942b6013ef URL: http://source.winehq.org/git/wine.git/?a=commit;h=45bd38ece3ce8dda36ae1c3e8d...
Author: Maarten Lankhorst m.b.lankhorst@gmail.com Date: Fri Apr 4 14:32:09 2008 -0700
quartz: Fix some memory leaks in the file source.
---
dlls/quartz/filesource.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/dlls/quartz/filesource.c b/dlls/quartz/filesource.c index 288c564..fd977f9 100644 --- a/dlls/quartz/filesource.c +++ b/dlls/quartz/filesource.c @@ -432,6 +432,8 @@ static ULONG WINAPI AsyncReader_Release(IBaseFilter * iface) This->csFilter.DebugInfo->Spare[0] = 0; DeleteCriticalSection(&This->csFilter); This->lpVtbl = NULL; + CoTaskMemFree(This->pszFileName); + FreeMediaType(This->pmt); CoTaskMemFree(This); return 0; } @@ -639,8 +641,13 @@ static HRESULT WINAPI FileSource_Load(IFileSourceFilter * iface, LPCOLESTR pszFi /* store file name & media type */ if (SUCCEEDED(hr)) { + CoTaskMemFree(This->pszFileName); + if (This->pmt) + FreeMediaType(This->pmt); + This->pszFileName = CoTaskMemAlloc((strlenW(pszFileName) + 1) * sizeof(WCHAR)); strcpyW(This->pszFileName, pszFileName); + This->pmt = CoTaskMemAlloc(sizeof(AM_MEDIA_TYPE)); if (!pmt) { @@ -674,7 +681,9 @@ static HRESULT WINAPI FileSource_Load(IFileSourceFilter * iface, LPCOLESTR pszFi }
CoTaskMemFree(This->pszFileName); + FreeMediaType(This->pmt); This->pszFileName = NULL; + This->pmt = NULL;
CloseHandle(hFile); }