[PATCH] quartz: free wszPatternString (Coverity)

Marcus Meissner marcus at jet.franken.de
Thu Mar 14 16:11:47 CDT 2013


wszPatternString was not freed in multiple exit paths.

CID 989103

Ciao, Marcus
---
 dlls/quartz/filesource.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/dlls/quartz/filesource.c b/dlls/quartz/filesource.c
index 95e146d..aee6d97 100644
--- a/dlls/quartz/filesource.c
+++ b/dlls/quartz/filesource.c
@@ -335,12 +335,15 @@ HRESULT GetClassMediaFile(IAsyncReader * pReader, LPCOLESTR pszFileName, GUID *
                             break;
                         }
 
-                        if (strcmpW(wszValueName, source_filter_name)==0)
+                        if (strcmpW(wszValueName, source_filter_name)==0) {
+                            HeapFree(GetProcessHeap(), 0, wszPatternString);
                             continue;
+                        }
 
                         /* if it is not the source filter value */
                         if (process_pattern_string(wszPatternString, pReader) == S_OK)
                         {
+                            HeapFree(GetProcessHeap(), 0, wszPatternString);
                             if (majorType && FAILED(CLSIDFromString(wszMajorKeyName, majorType)))
                                 break;
                             if (minorType && FAILED(CLSIDFromString(wszMinorKeyName, minorType)))
@@ -354,8 +357,8 @@ HRESULT GetClassMediaFile(IAsyncReader * pReader, LPCOLESTR pszFileName, GUID *
                                     break;
                             }
                             bFound = TRUE;
-                        }
-                        HeapFree(GetProcessHeap(), 0, wszPatternString);
+                        } else
+                            HeapFree(GetProcessHeap(), 0, wszPatternString);
                     }
                     CloseHandle(hkeyMinor);
                 }
-- 
1.7.10.4




More information about the wine-patches mailing list