Maarten Lankhorst : quartz: Fix some memory leaks in the file source.

Alexandre Julliard julliard at winehq.org
Mon Apr 7 06:50:32 CDT 2008


Module: wine
Branch: master
Commit: 45bd38ece3ce8dda36ae1c3e8d5cac942b6013ef
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=45bd38ece3ce8dda36ae1c3e8d5cac942b6013ef

Author: Maarten Lankhorst <m.b.lankhorst at 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);
     }




More information about the wine-cvs mailing list