=?UTF-8?Q?Fr=C3=A9d=C3=A9ric=20Delanoy=20?=: msi: Fix some leaks (coverity) .
Alexandre Julliard
julliard at winehq.org
Wed Nov 7 14:02:28 CST 2012
Module: wine
Branch: master
Commit: 85bf1082ce68612abd79863d7d61f232efd0601c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=85bf1082ce68612abd79863d7d61f232efd0601c
Author: Frédéric Delanoy <frederic.delanoy at gmail.com>
Date: Wed Nov 7 01:05:50 2012 +0100
msi: Fix some leaks (coverity).
---
dlls/msi/msi.c | 3 +++
dlls/msi/package.c | 6 ++++--
dlls/msi/source.c | 3 +++
dlls/msi/where.c | 2 ++
4 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c
index 4bcb5c5..92ef52c 100644
--- a/dlls/msi/msi.c
+++ b/dlls/msi/msi.c
@@ -2215,7 +2215,10 @@ UINT WINAPI MsiQueryComponentStateW(LPCWSTR szProductCode,
if (!(val = msi_alloc( sz ))) return ERROR_OUTOFMEMORY;
if ((r = msi_comp_find_prodcode(squished_pc, dwContext, szComponent, val, &sz)))
+ {
+ msi_free(val);
return r;
+ }
if (lstrlenW(val) > 2 &&
val[0] >= '0' && val[0] <= '9' && val[1] >= '0' && val[1] <= '9' && val[2] != ':')
diff --git a/dlls/msi/package.c b/dlls/msi/package.c
index f398c10..015af00 100644
--- a/dlls/msi/package.c
+++ b/dlls/msi/package.c
@@ -638,10 +638,12 @@ static void set_msi_assembly_prop(MSIPACKAGE *package)
return;
size = GetFileVersionInfoSizeW(fusion, &handle);
- if (!size) return;
+ if (!size)
+ goto done;
version = msi_alloc(size);
- if (!version) return;
+ if (!version)
+ goto done;
if (!GetFileVersionInfoW(fusion, handle, size, version))
goto done;
diff --git a/dlls/msi/source.c b/dlls/msi/source.c
index 881f3d2..ab8541c 100644
--- a/dlls/msi/source.c
+++ b/dlls/msi/source.c
@@ -763,7 +763,10 @@ UINT msi_set_last_used_source(LPCWSTR product, LPCWSTR usersid,
r = OpenSourceKey(product, &source, MSICODE_PRODUCT, context, FALSE);
if (r != ERROR_SUCCESS)
+ {
+ msi_free(buffer);
return r;
+ }
sprintfW(buffer, format, typechar, index, value);
diff --git a/dlls/msi/where.c b/dlls/msi/where.c
index 45fda44..1bf7788 100644
--- a/dlls/msi/where.c
+++ b/dlls/msi/where.c
@@ -1253,6 +1253,8 @@ UINT WHERE_CreateView( MSIDATABASE *db, MSIVIEW **view, LPWSTR tables,
if (r != ERROR_SUCCESS)
{
ERR("can't get table dimensions\n");
+ table->view->ops->delete(table->view);
+ msi_free(table);
goto end;
}
More information about the wine-cvs
mailing list