diff --git a/dlls/mciavi32/mmoutput.c b/dlls/mciavi32/mmoutput.c index d3badb64913..c932ab4cf3c 100644 --- a/dlls/mciavi32/mmoutput.c +++ b/dlls/mciavi32/mmoutput.c @@ -229,14 +229,16 @@ static BOOL MCIAVI_AddFrame(WINE_MCIAVI* wma, LPMMCKINFO mmck, alb->numAudioBlocks, mmck->cksize); if (wma->lpWaveFormat) { if (alb->numAudioBlocks >= alb->numAudioAllocated) { - alb->numAudioAllocated += 32; - if (!wma->lpAudioIndex) - wma->lpAudioIndex = HeapAlloc(GetProcessHeap(), 0, - alb->numAudioAllocated * sizeof(struct MMIOPos)); - else - wma->lpAudioIndex = HeapReAlloc(GetProcessHeap(), 0, wma->lpAudioIndex, - alb->numAudioAllocated * sizeof(struct MMIOPos)); - if (!wma->lpAudioIndex) return FALSE; + DWORD newsize = alb->numAudioAllocated + 32; + struct MMIOPos* newindex; + + if (!wma->lpAudioIndex) + newindex = HeapAlloc(GetProcessHeap(), 0, newsize * sizeof(struct MMIOPos)); + else + newindex = HeapReAlloc(GetProcessHeap(), 0, wma->lpAudioIndex, newsize * sizeof(struct MMIOPos)); + if (!newindex) return FALSE; + alb->numAudioAllocated = newsize; + wma->lpAudioIndex = newindex; } wma->lpAudioIndex[alb->numAudioBlocks].dwOffset = mmck->dwDataOffset; wma->lpAudioIndex[alb->numAudioBlocks].dwSize = mmck->cksize;