From d34aba2a1c4b3aa781f3bba822f02748adca8f76 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Tue, 5 Jan 2010 21:29:03 +0100 Subject: [PATCH] avifil32: Don't leak the buffer on HeapReAlloc() failure in AVISaveOptionsFmtChoose(). --- dlls/avifil32/api.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dlls/avifil32/api.c b/dlls/avifil32/api.c index 8107b478fb..c3dc72ffca 100644 --- a/dlls/avifil32/api.c +++ b/dlls/avifil32/api.c @@ -1225,13 +1225,14 @@ static BOOL AVISaveOptionsFmtChoose(HWND hWnd) acmMetrics(NULL, ACM_METRIC_MAX_SIZE_FORMAT, &size); if ((pOptions->cbFormat == 0 || pOptions->lpFormat == NULL) && size != 0) { pOptions->lpFormat = HeapAlloc(GetProcessHeap(), 0, size); + if (!pOptions->lpFormat) return FALSE; pOptions->cbFormat = size; } else if (pOptions->cbFormat < (DWORD)size) { - pOptions->lpFormat = HeapReAlloc(GetProcessHeap(), 0, pOptions->lpFormat, size); + void *new_buffer = HeapReAlloc(GetProcessHeap(), 0, pOptions->lpFormat, size); + if (!new_buffer) return FALSE; + pOptions->lpFormat = new_buffer; pOptions->cbFormat = size; } - if (pOptions->lpFormat == NULL) - return FALSE; afmtc.pwfx = pOptions->lpFormat; afmtc.cbwfx = pOptions->cbFormat; -- 2.32.0.93.g670b81a890