Module: wine Branch: master Commit: fcbc5cc5bb5af7fced9c282dbf250a1941342898 URL: http://source.winehq.org/git/wine.git/?a=commit;h=fcbc5cc5bb5af7fced9c282dbf...
Author: Frédéric Delanoy frederic.delanoy@gmail.com Date: Fri Nov 16 18:38:02 2012 +0100
msi: Fix a couple of leaks (coverity).
---
dlls/msi/files.c | 6 ++++-- dlls/msi/package.c | 7 +++++++ 2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/files.c b/dlls/msi/files.c index 11913ef..d831313 100644 --- a/dlls/msi/files.c +++ b/dlls/msi/files.c @@ -336,7 +336,8 @@ UINT ACTION_InstallFiles(MSIPACKAGE *package) if (rc != ERROR_SUCCESS) { ERR("Unable to load media info for %s (%u)\n", debugstr_w(file->File), rc); - return ERROR_FUNCTION_FAILED; + rc = ERROR_FUNCTION_FAILED; + goto done; } if (!file->Component->Enabled) continue;
@@ -513,7 +514,8 @@ UINT ACTION_PatchFiles( MSIPACKAGE *package ) if (rc != ERROR_SUCCESS) { ERR("Unable to load media info for %s (%u)\n", debugstr_w(file->File), rc); - return ERROR_FUNCTION_FAILED; + rc = ERROR_FUNCTION_FAILED; + goto done; } comp->Action = msi_get_component_action( package, comp ); if (!comp->Enabled || comp->Action != INSTALLSTATE_LOCAL) continue; 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 );