Huw Davies : qedit: Fix a memory leak.

Alexandre Julliard julliard at winehq.org
Tue Dec 15 09:40:21 CST 2009


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

Author: Huw Davies <huw at codeweavers.com>
Date:   Tue Dec 15 15:20:29 2009 +0000

qedit: Fix a memory leak.

Found by Valgrind.

---

 dlls/qedit/mediadet.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/dlls/qedit/mediadet.c b/dlls/qedit/mediadet.c
index d27a638..3a13f71 100644
--- a/dlls/qedit/mediadet.c
+++ b/dlls/qedit/mediadet.c
@@ -310,7 +310,11 @@ static HRESULT GetFilterInfo(IMoniker *pMoniker, GUID *pclsid, VARIANT *pvar)
         hr = IPropertyBag_Read(pPropBagCat, wszClsidName, pvar, NULL);
 
     if (SUCCEEDED(hr))
+    {
         hr = CLSIDFromString(V_UNION(pvar, bstrVal), pclsid);
+        VariantClear(pvar);
+        V_VT(pvar) = VT_BSTR;
+    }
 
     if (SUCCEEDED(hr))
         hr = IPropertyBag_Read(pPropBagCat, wszFriendlyName, pvar, NULL);
@@ -387,10 +391,14 @@ static HRESULT GetSplitter(MediaDetImpl *This)
     hr = CoCreateInstance(&clsid, NULL, CLSCTX_INPROC_SERVER,
                           &IID_IBaseFilter, (void **) &splitter);
     if (FAILED(hr))
+    {
+        VariantClear(&var);
         return hr;
+    }
 
     hr = IGraphBuilder_AddFilter(This->graph, splitter,
                                  V_UNION(&var, bstrVal));
+    VariantClear(&var);
     if (FAILED(hr))
     {
         IBaseFilter_Release(splitter);




More information about the wine-cvs mailing list