Mike McCormack : msi: Fix memory leaks and bad frees.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Oct 10 06:50:37 CDT 2006
Module: wine
Branch: master
Commit: 73c7bcb6e53514ef2be9627324ef896a9319c0dc
URL: http://source.winehq.org/git/wine.git/?a=commit;h=73c7bcb6e53514ef2be9627324ef896a9319c0dc
Author: Mike McCormack <mike at codeweavers.com>
Date: Tue Oct 10 15:20:39 2006 +0900
msi: Fix memory leaks and bad frees.
---
dlls/msi/appsearch.c | 4 ++--
dlls/msi/custom.c | 3 +++
dlls/msi/database.c | 1 +
3 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/appsearch.c b/dlls/msi/appsearch.c
index 622b97c..1d3559c 100644
--- a/dlls/msi/appsearch.c
+++ b/dlls/msi/appsearch.c
@@ -398,7 +398,7 @@ static UINT ACTION_AppSearchReg(MSIPACKA
appValue);
break;
case msidbLocatorTypeFileName:
- *appValue = (LPWSTR)value;
+ *appValue = strdupW((LPCWSTR)value);
break;
case msidbLocatorTypeRawValue:
ACTION_ConvertRegValue(regType, value, sz, appValue);
@@ -996,7 +996,7 @@ UINT ACTION_AppSearch(MSIPACKAGE *packag
while (!rc)
{
MSISIGNATURE sig;
- LPWSTR value;
+ LPWSTR value = NULL;
rc = MSI_ViewFetch(view,&row);
if (rc != ERROR_SUCCESS)
diff --git a/dlls/msi/custom.c b/dlls/msi/custom.c
index dfebfce..5220a57 100644
--- a/dlls/msi/custom.c
+++ b/dlls/msi/custom.c
@@ -167,7 +167,10 @@ UINT ACTION_CustomAction(MSIPACKAGE *pac
row = MSI_QueryGetRecord( package->db, ExecSeqQuery, action );
if (!row)
+ {
+ msi_free(action_copy);
return ERROR_CALL_NOT_IMPLEMENTED;
+ }
type = MSI_RecordGetInteger(row,2);
diff --git a/dlls/msi/database.c b/dlls/msi/database.c
index a0d1867..266b467 100644
--- a/dlls/msi/database.c
+++ b/dlls/msi/database.c
@@ -668,6 +668,7 @@ done:
msi_free(data);
msi_free(columns);
msi_free(types);
+ msi_free(labels);
for (i = 0; i < num_records; i++)
msi_free(records[i]);
More information about the wine-cvs
mailing list