- make sure to free the string table when closing the database
- don't free szPersist in MsiOpenDatabase if it's not a string
This commit is contained in:
parent
809cf354e4
commit
c1f2cf1fba
|
@ -65,6 +65,7 @@ VOID MSI_CloseDatabase( MSIOBJECTHDR *arg )
|
||||||
DWORD r;
|
DWORD r;
|
||||||
|
|
||||||
free_cached_tables( db );
|
free_cached_tables( db );
|
||||||
|
msi_destroy_stringtable( db->strings );
|
||||||
r = IStorage_Release( db->storage );
|
r = IStorage_Release( db->storage );
|
||||||
if( r )
|
if( r )
|
||||||
ERR("database reference count was not zero (%ld)\n", r);
|
ERR("database reference count was not zero (%ld)\n", r);
|
||||||
|
@ -213,7 +214,8 @@ UINT WINAPI MsiOpenDatabaseA(LPCSTR szDBPath, LPCSTR szPersist, MSIHANDLE *phDB)
|
||||||
r = MsiOpenDatabaseW( szwDBPath, szwPersist, phDB );
|
r = MsiOpenDatabaseW( szwDBPath, szwPersist, phDB );
|
||||||
|
|
||||||
end:
|
end:
|
||||||
HeapFree( GetProcessHeap(), 0, szwPersist );
|
if( HIWORD(szPersist) )
|
||||||
|
HeapFree( GetProcessHeap(), 0, szwPersist );
|
||||||
HeapFree( GetProcessHeap(), 0, szwDBPath );
|
HeapFree( GetProcessHeap(), 0, szwDBPath );
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
|
|
Loading…
Reference in New Issue