Henri Verbeet : avifil32: Don't leak the buffer on HeapReAlloc() failure in AVISaveOptionsFmtChoose().
Alexandre Julliard
julliard at winehq.org
Wed Jan 6 13:00:56 CST 2010
Module: wine
Branch: master
Commit: d34aba2a1c4b3aa781f3bba822f02748adca8f76
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d34aba2a1c4b3aa781f3bba822f02748adca8f76
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Tue Jan 5 21:29:03 2010 +0100
avifil32: Don't leak the buffer on HeapReAlloc() failure in AVISaveOptionsFmtChoose().
---
dlls/avifil32/api.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/avifil32/api.c b/dlls/avifil32/api.c
index 8107b47..c3dc72f 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;
More information about the wine-cvs
mailing list