From ac524986df2a207b563fc6ef296c89744b7163c8 Mon Sep 17 00:00:00 2001 From: Andrew Talbot Date: Thu, 25 Oct 2007 20:07:47 +0100 Subject: [PATCH] winhelp: Fix a memory leak. --- programs/winhelp/hlpfile.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/programs/winhelp/hlpfile.c b/programs/winhelp/hlpfile.c index 8882a1a652..3c34a06e0c 100644 --- a/programs/winhelp/hlpfile.c +++ b/programs/winhelp/hlpfile.c @@ -860,7 +860,7 @@ static BOOL HLPFILE_AddParagraph(HLPFILE *hlpfile, BYTE *buf, BYTE *end, unsigne HLPFILE_PARAGRAPH *paragraph, **paragraphptr; UINT textsize; BYTE *format, *format_end; - char *text, *text_end; + char *text, *text_base, *text_end; long size; unsigned short bits; unsigned nc, ncol = 1; @@ -874,7 +874,7 @@ static BOOL HLPFILE_AddParagraph(HLPFILE *hlpfile, BYTE *buf, BYTE *end, unsigne if (buf + 0x19 > end) {WINE_WARN("header too small\n"); return FALSE;}; size = GET_UINT(buf, 0x4); - text = HeapAlloc(GetProcessHeap(), 0, size); + text = text_base = HeapAlloc(GetProcessHeap(), 0, size); if (!text) return FALSE; if (hlpfile->hasPhrases) { @@ -1164,8 +1164,7 @@ static BOOL HLPFILE_AddParagraph(HLPFILE *hlpfile, BYTE *buf, BYTE *end, unsigne } } } - if (text_end != (char*)buf + GET_UINT(buf, 0x10) + size) - HeapFree(GetProcessHeap(), 0, text_end - size); + HeapFree(GetProcessHeap(), 0, text_base); return TRUE; } -- 2.32.0.93.g670b81a890