Jacek Caban : msi: Fixed varg0 leak in InstallerImpl_SummaryInformation.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Sep 1 08:56:04 CDT 2015


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Aug 31 20:11:53 2015 +0200

msi: Fixed varg0 leak in InstallerImpl_SummaryInformation.

---

 dlls/msi/automation.c | 26 +++++++++++---------------
 1 file changed, 11 insertions(+), 15 deletions(-)

diff --git a/dlls/msi/automation.c b/dlls/msi/automation.c
index e974387..56823ee 100644
--- a/dlls/msi/automation.c
+++ b/dlls/msi/automation.c
@@ -1841,32 +1841,28 @@ static HRESULT InstallerImpl_SummaryInformation(WORD wFlags,
     if (!(wFlags & DISPATCH_PROPERTYGET))
         return DISP_E_MEMBERNOTFOUND;
 
-    VariantInit(&varg0);
-    hr = DispGetParam(pDispParams, 0, VT_BSTR, &varg0, puArgErr);
-    if (FAILED(hr))
-        return hr;
-
     VariantInit(&varg1);
     hr = DispGetParam(pDispParams, 1, VT_I4, &varg1, puArgErr);
     if (FAILED(hr))
         return hr;
 
-    V_VT(pVarResult) = VT_DISPATCH;
+    VariantInit(&varg0);
+    hr = DispGetParam(pDispParams, 0, VT_BSTR, &varg0, puArgErr);
+    if (FAILED(hr))
+        return hr;
 
     ret = MsiGetSummaryInformationW(0, V_BSTR(&varg0), V_I4(&varg1), &hsuminfo);
+    VariantClear(&varg0);
     if (ret != ERROR_SUCCESS)
-    {
-        hr = DISP_E_EXCEPTION;
-        goto done;
-    }
+        return DISP_E_EXCEPTION;
 
     hr = create_summaryinfo(hsuminfo, &dispatch);
-    if (SUCCEEDED(hr))
-        V_DISPATCH(pVarResult) = dispatch;
+    if (FAILED(hr))
+        return hr;
 
-done:
-    VariantClear(&varg0);
-    return hr;
+    V_VT(pVarResult) = VT_DISPATCH;
+    V_DISPATCH(pVarResult) = dispatch;
+    return S_OK;
 }
 
 static HRESULT InstallerImpl_UILevel(WORD wFlags,




More information about the wine-cvs mailing list