Nikolay Sivov : oledb32: Fix IDBInitialize instance leak on error path ( Valgrind).

Alexandre Julliard julliard at winehq.org
Mon May 5 15:03:26 CDT 2014


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Sun May  4 20:34:09 2014 +0400

oledb32: Fix IDBInitialize instance leak on error path (Valgrind).

---

 dlls/oledb32/datainit.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/dlls/oledb32/datainit.c b/dlls/oledb32/datainit.c
index 9fe3c4f..dfafeb1 100644
--- a/dlls/oledb32/datainit.c
+++ b/dlls/oledb32/datainit.c
@@ -205,7 +205,7 @@ static const IDBInitializeVtbl dbinit_vtbl =
     dbinit_Uninitialize
 };
 
-static HRESULT create_db_init(void **obj)
+static HRESULT create_db_init(IUnknown **obj)
 {
     dbinit *This;
 
@@ -220,7 +220,7 @@ static HRESULT create_db_init(void **obj)
     This->IDBProperties_iface.lpVtbl = &dbprops_vtbl;
     This->ref = 1;
 
-    *obj = &This->IDBInitialize_iface;
+    *obj = (IUnknown*)&This->IDBInitialize_iface;
 
     return S_OK;
 }
@@ -512,7 +512,7 @@ static HRESULT WINAPI datainit_GetDataSource(IDataInitialize *iface, IUnknown *o
             hr = CoCreateInstance(&provclsid, outer, clsctx, riid, (void**)datasource);
 
         if (FAILED(hr) && IsEqualIID(riid, &IID_IDBInitialize))
-            hr = create_db_init((void**)datasource);
+            hr = create_db_init(datasource);
     }
 
     /* now set properties */
@@ -555,7 +555,7 @@ static HRESULT WINAPI datainit_GetDataSource(IDataInitialize *iface, IUnknown *o
             hr = set_dbpropset(name, value, &propset);
             SysFreeString(name);
             SysFreeString(value);
-            if (FAILED(hr)) return hr;
+            if (FAILED(hr)) break;
 
             hr = IDBProperties_SetProperties(dbprops, 1, propset);
             free_dbpropset(1, propset);




More information about the wine-cvs mailing list