Module: wine Branch: master Commit: 63c5e152a1b02dddee3cc7964d0b3e80c297dd9d URL: http://source.winehq.org/git/wine.git/?a=commit;h=63c5e152a1b02dddee3cc7964d...
Author: Rico Schüller kgbricola@web.de Date: Mon Dec 31 01:04:56 2007 +0100
msi: Fix memory leaks (found by Smatch).
---
dlls/msi/dialog.c | 3 +++ dlls/msi/source.c | 7 +++++++ 2 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c index 4417d4b..4ab25f9 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -2268,7 +2268,10 @@ static UINT msi_dialog_list_box( msi_dialog *dialog, MSIRECORD *rec )
control = msi_dialog_add_control( dialog, rec, WC_LISTBOXW, style ); if (!control) + { + msi_free(info); return ERROR_FUNCTION_FAILED; + }
control->handler = msi_dialog_listbox_handler;
diff --git a/dlls/msi/source.c b/dlls/msi/source.c index 68f94b5..fcdd35d 100644 --- a/dlls/msi/source.c +++ b/dlls/msi/source.c @@ -605,7 +605,10 @@ static UINT fill_source_list(struct list *sourcelist, HKEY sourcekey, DWORD *cou
entry->path = msi_alloc(val_size); if (!entry->path) + { + msi_free(entry); goto error; + }
lstrcpyW(entry->szIndex, name); entry->index = atoiW(name); @@ -614,7 +617,11 @@ static UINT fill_source_list(struct list *sourcelist, HKEY sourcekey, DWORD *cou r = RegEnumValueW(sourcekey, index, name, &size, NULL, NULL, (LPBYTE)entry->path, &val_size); if (r != ERROR_SUCCESS) + { + msi_free(entry->path); + msi_free(entry); goto error; + }
index = ++(*count); add_source_to_list(sourcelist, entry);