Kirill K. Smirnov : mciavi32: Propely handle Heap[Re]Alloc failure.

Alexandre Julliard julliard at wine.codeweavers.com
Sat May 14 10:07:27 CDT 2016


Module: wine
Branch: master
Commit: ed79f458174d9db8e41d2b166fcc8acde7dfdeb9
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ed79f458174d9db8e41d2b166fcc8acde7dfdeb9

Author: Kirill K. Smirnov <kirill.k.smirnov at gmail.com>
Date:   Sun May  8 19:10:44 2016 +0300

mciavi32: Propely handle Heap[Re]Alloc failure.

Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov at gmail.com>
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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;




More information about the wine-cvs mailing list