Module: wine Branch: master Commit: 05f6769f24a6db40ac1ea3d60cdbc3ac9c5f2513 URL: https://source.winehq.org/git/wine.git/?a=commit;h=05f6769f24a6db40ac1ea3d60... Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Fri Dec 14 03:43:25 2018 +0300 inetcomm: Fix a leak on DeleteProp() (Valgrind). Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/inetcomm/mimeole.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/dlls/inetcomm/mimeole.c b/dlls/inetcomm/mimeole.c index cb9ebcc..a2854be 100644 --- a/dlls/inetcomm/mimeole.c +++ b/dlls/inetcomm/mimeole.c @@ -819,16 +819,21 @@ static void empty_param_list(struct list *list) } } +static void free_header(header_t *header) +{ + list_remove(&header->entry); + PropVariantClear(&header->value); + empty_param_list(&header->params); + heap_free(header); +} + static void empty_header_list(struct list *list) { header_t *header, *cursor2; LIST_FOR_EACH_ENTRY_SAFE(header, cursor2, list, header_t, entry) { - list_remove(&header->entry); - PropVariantClear(&header->value); - empty_param_list(&header->params); - HeapFree(GetProcessHeap(), 0, header); + free_header(header); } } @@ -1232,8 +1237,7 @@ static HRESULT WINAPI MimeBody_DeleteProp( if(found) { - list_remove(&cursor->entry); - HeapFree(GetProcessHeap(), 0, cursor); + free_header(cursor); return S_OK; } }