mciavi32: Propely handle Heap[Re]Alloc failure (resend)

Andrew Eikum aeikum at codeweavers.com
Thu May 12 14:39:05 CDT 2016


Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>

Thanks. Just wondering, does this fix an issue in an application, or
you just happened to notice it?

Andrew

On Mon, May 09, 2016 at 01:56:07PM +0300, Kirill Smirnov wrote:

> From 6efc377709be073cd3775f815cd539b0fdb8c95c Mon Sep 17 00:00:00 2001
> From: "Kirill K. Smirnov" <kirill.k.smirnov at gmail.com>
> Date: Sun, 8 May 2016 19:10:44 +0300
> Subject: [PATCH] mciavi32: Propely handle Heap[Re]Alloc failure.
> 
> Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov at gmail.com>
> ---
>  dlls/mciavi32/mmoutput.c | 18 ++++++++++--------
>  1 file changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/dlls/mciavi32/mmoutput.c b/dlls/mciavi32/mmoutput.c
> index d3badb6..c932ab4 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;
> -- 
> 2.8.2
> 

> 




More information about the wine-patches mailing list