Commit c1f2cf1f authored by Mike McCormack's avatar Mike McCormack Committed by Alexandre Julliard

- make sure to free the string table when closing the database

- don't free szPersist in MsiOpenDatabase if it's not a string
parent 809cf354
...@@ -65,6 +65,7 @@ VOID MSI_CloseDatabase( MSIOBJECTHDR *arg ) ...@@ -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) ...@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment