regedit: fixed a memory leak in listview.c (found by Smatch).
Dmitry Timoshkov
dmitry at codeweavers.com
Mon Sep 3 09:10:48 CDT 2007
"Lionel_Debroux" <lionel_debroux at yahoo.fr> wrote:
> diff --git a/programs/regedit/listview.c b/programs/regedit/listview.c
> index 0e4b52b..8b58eec 100644
> --- a/programs/regedit/listview.c
> +++ b/programs/regedit/listview.c
> @@ -61,7 +61,10 @@ static LPTSTR get_item_text(HWND hwndLV, int item)
>
> curStr = HeapAlloc(GetProcessHeap(), 0, maxLen);
> if (!curStr) return NULL;
> - if (item == 0) return NULL; /* first item is ALWAYS a default */
> + if (item == 0) { /* first item is ALWAYS a default */
> + HeapFree(GetProcessHeap(), 0, curStr);
> + return NULL;
> + }
A more logical fix would be to move
if (item == 0) return NULL; /* first item is ALWAYS a default */
before HeapAlloc() call.
--
Dmitry.
More information about the wine-devel
mailing list