From 6dc309187cef40373306699e600646ea92c3803b Mon Sep 17 00:00:00 2001 From: Mike McCormack Date: Wed, 21 Sep 2005 09:43:29 +0000 Subject: [PATCH] Fix some simple memory leaks. --- dlls/msi/create.c | 4 +++- dlls/msi/dialog.c | 1 + dlls/msi/format.c | 2 ++ dlls/msi/helpers.c | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/dlls/msi/create.c b/dlls/msi/create.c index 855999ec582..2e98a2cec1a 100644 --- a/dlls/msi/create.c +++ b/dlls/msi/create.c @@ -64,7 +64,7 @@ static UINT CREATE_execute( struct tagMSIVIEW *view, MSIRECORD *record ) static const WCHAR szTables[] = { '_','T','a','b','l','e','s',0 }; static const WCHAR szColumns[] = { '_','C','o','l','u','m','n','s',0 }; MSIVIEW *tv = NULL; - MSIRECORD *rec; + MSIRECORD *rec = NULL; TRACE("%p Table %s (%s)\n", cv, debugstr_w(cv->name), cv->bIsTemp?"temporary":"permanent"); @@ -148,6 +148,8 @@ static UINT CREATE_execute( struct tagMSIVIEW *view, MSIRECORD *record ) r = ERROR_SUCCESS; err: + if (rec) + msiobj_release( &rec->hdr ); /* FIXME: remove values from the string table on error */ if( tv ) tv->ops->delete( tv ); diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c index 9720acbc667..ac4fe71b214 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -1524,6 +1524,7 @@ static UINT msi_dialog_set_property( msi_dialog *dialog, LPCWSTR event, LPCWSTR if( strcmpW( szNullArg, arg ) ) deformat_string( dialog->package, arg, &arg_fmt ); MSI_SetPropertyW( dialog->package, prop, arg_fmt ); + msi_free( arg_fmt ); } else ERR("Badly formatted property string - what happens?\n"); diff --git a/dlls/msi/format.c b/dlls/msi/format.c index 067fc4f05a6..9bcfc7f9cd2 100644 --- a/dlls/msi/format.c +++ b/dlls/msi/format.c @@ -368,6 +368,7 @@ static LPWSTR deformat_group(MSIPACKAGE* package, LPWSTR group, DWORD len, } else { + msi_free(value); *size = 0; return NULL; } @@ -423,6 +424,7 @@ static DWORD deformat_string_internal(MSIPACKAGE *package, LPCWSTR ptr, { value = deformat_group(package, key, strlenW(key)+1, record, &chunk); + msi_free( key ); key = NULL; nested = FALSE; } diff --git a/dlls/msi/helpers.c b/dlls/msi/helpers.c index 9ae31e2b9cf..ba253620823 100644 --- a/dlls/msi/helpers.c +++ b/dlls/msi/helpers.c @@ -488,6 +488,7 @@ void ACTION_free_package_structures( MSIPACKAGE* package) msi_free( folder->ResolvedTarget ); msi_free( folder->ResolvedSource ); msi_free( folder->Property ); + msi_free( folder ); } LIST_FOR_EACH_SAFE( item, cursor, &package->components ) -- 2.11.4.GIT