msi: Fix a couple of leaks (coverity)
Frédéric Delanoy
frederic.delanoy at gmail.com
Fri Nov 16 04:50:29 CST 2012
CIDs 713577-713578 713582
---
dlls/msi/files.c | 2 ++
dlls/msi/package.c | 7 +++++++
2 files changed, 9 insertions(+)
diff --git a/dlls/msi/files.c b/dlls/msi/files.c
index 11913ef..98d7513 100644
--- a/dlls/msi/files.c
+++ b/dlls/msi/files.c
@@ -336,6 +336,7 @@ UINT ACTION_InstallFiles(MSIPACKAGE *package)
if (rc != ERROR_SUCCESS)
{
ERR("Unable to load media info for %s (%u)\n", debugstr_w(file->File), rc);
+ msi_free(mi);
return ERROR_FUNCTION_FAILED;
}
if (!file->Component->Enabled) continue;
@@ -513,6 +514,7 @@ UINT ACTION_PatchFiles( MSIPACKAGE *package )
if (rc != ERROR_SUCCESS)
{
ERR("Unable to load media info for %s (%u)\n", debugstr_w(file->File), rc);
+ msi_free(mi);
return ERROR_FUNCTION_FAILED;
}
comp->Action = msi_get_component_action( package, comp );
diff --git a/dlls/msi/package.c b/dlls/msi/package.c
index 015af00..3055175 100644
--- a/dlls/msi/package.c
+++ b/dlls/msi/package.c
@@ -1567,13 +1567,17 @@ UINT MSI_OpenPackageW(LPCWSTR szPackage, MSIPACKAGE **pPackage)
{
r = msi_create_empty_local_file( localfile, dotmsi );
if (r != ERROR_SUCCESS)
+ {
+ msi_free ( base_url );
return r;
+ }
if (!CopyFileW( file, localfile, FALSE ))
{
r = GetLastError();
WARN("unable to copy package %s to %s (%u)\n", debugstr_w(file), debugstr_w(localfile), r);
DeleteFileW( localfile );
+ msi_free ( base_url );
return r;
}
delete_on_close = TRUE;
@@ -1581,7 +1585,10 @@ UINT MSI_OpenPackageW(LPCWSTR szPackage, MSIPACKAGE **pPackage)
TRACE("opening package %s\n", debugstr_w( localfile ));
r = MSI_OpenDatabaseW( localfile, MSIDBOPEN_TRANSACT, &db );
if (r != ERROR_SUCCESS)
+ {
+ msi_free ( base_url );
return r;
+ }
}
package = MSI_CreatePackage( db, base_url );
msi_free( base_url );
--
1.8.0
More information about the wine-patches
mailing list