avifil32: Don't leak the buffer on HeapReAlloc() failure in AVISaveOptionsFmtChoose().
This commit is contained in:
parent
7ab7103946
commit
d34aba2a1c
|
@ -1225,13 +1225,14 @@ static BOOL AVISaveOptionsFmtChoose(HWND hWnd)
|
||||||
acmMetrics(NULL, ACM_METRIC_MAX_SIZE_FORMAT, &size);
|
acmMetrics(NULL, ACM_METRIC_MAX_SIZE_FORMAT, &size);
|
||||||
if ((pOptions->cbFormat == 0 || pOptions->lpFormat == NULL) && size != 0) {
|
if ((pOptions->cbFormat == 0 || pOptions->lpFormat == NULL) && size != 0) {
|
||||||
pOptions->lpFormat = HeapAlloc(GetProcessHeap(), 0, size);
|
pOptions->lpFormat = HeapAlloc(GetProcessHeap(), 0, size);
|
||||||
|
if (!pOptions->lpFormat) return FALSE;
|
||||||
pOptions->cbFormat = size;
|
pOptions->cbFormat = size;
|
||||||
} else if (pOptions->cbFormat < (DWORD)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;
|
pOptions->cbFormat = size;
|
||||||
}
|
}
|
||||||
if (pOptions->lpFormat == NULL)
|
|
||||||
return FALSE;
|
|
||||||
afmtc.pwfx = pOptions->lpFormat;
|
afmtc.pwfx = pOptions->lpFormat;
|
||||||
afmtc.cbwfx = pOptions->cbFormat;
|
afmtc.cbwfx = pOptions->cbFormat;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue