From d6879f699fa24d0cb18a8f9260db2d6ca5b65860 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Fri, 4 Apr 2008 14:32:09 -0700 Subject: [PATCH] quartz: Fix some memory leaks in 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); } -- 1.5.4.1