Misha Koshelev : msi: Use SysAllocString/ SysFreeString for BSTR members of EXCEPINFO structure.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jul 30 08:55:41 CDT 2007


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

Author: Misha Koshelev <mk144210 at bcm.edu>
Date:   Fri Jul 27 23:51:47 2007 -0500

msi: Use SysAllocString/SysFreeString for BSTR members of EXCEPINFO structure.

---

 dlls/msi/automation.c       |    4 ++--
 dlls/msi/script.c           |    6 ++++++
 dlls/msi/tests/automation.c |    4 ++++
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/dlls/msi/automation.c b/dlls/msi/automation.c
index 97084fc..fb8d4f5 100644
--- a/dlls/msi/automation.c
+++ b/dlls/msi/automation.c
@@ -426,8 +426,8 @@ static HRESULT WINAPI AutomationObject_Invoke(
 
             memset(pExcepInfo, 0, sizeof(EXCEPINFO));
             pExcepInfo->wCode = 1000;
-            pExcepInfo->bstrSource = szExceptionSource;
-            pExcepInfo->bstrDescription = szExceptionDescription;
+            pExcepInfo->bstrSource = SysAllocString(szExceptionSource);
+            pExcepInfo->bstrDescription = SysAllocString(szExceptionDescription);
             hr = DISP_E_EXCEPTION;
         }
     }
diff --git a/dlls/msi/script.c b/dlls/msi/script.c
index cbce0ce..2f2a17e 100644
--- a/dlls/msi/script.c
+++ b/dlls/msi/script.c
@@ -336,9 +336,15 @@ static HRESULT WINAPI MsiActiveScriptSite_OnScriptError(IActiveScriptSite* iface
 
     TRACE("(%p/%p)->(%p)\n", This, iface, pscripterror);
 
+    memset(&exception, 0, sizeof(EXCEPINFO));
     hr = IActiveScriptError_GetExceptionInfo(pscripterror, &exception);
     if (SUCCEEDED(hr))
+    {
         ERR("script error: %s\n", debugstr_w(exception.bstrDescription));
+        SysFreeString(exception.bstrSource);
+        SysFreeString(exception.bstrDescription);
+        SysFreeString(exception.bstrHelpFile);
+    }
 
     return S_OK;
 }
diff --git a/dlls/msi/tests/automation.c b/dlls/msi/tests/automation.c
index e7d1847..d2aac28 100644
--- a/dlls/msi/tests/automation.c
+++ b/dlls/msi/tests/automation.c
@@ -433,6 +433,10 @@ static WCHAR szSource[] = {'M','s','i',' ','A','P','I',' ','E','r','r','o','r',0
         ok(excepinfo.bstrDescription != NULL, "Exception description was NULL\n"); \
         if (excepinfo.bstrDescription) \
             ok_w2("Exception description was \"%s\" but expected to be \"%s\"\n", excepinfo.bstrDescription, szDescription); \
+\
+        SysFreeString(excepinfo.bstrSource); \
+        SysFreeString(excepinfo.bstrDescription); \
+        SysFreeString(excepinfo.bstrHelpFile); \
     }
 
 static DISPID get_dispid( IDispatch *disp, const char *name )




More information about the wine-cvs mailing list