From 3562c2bd7ab0408a7656201ee8992ab619480c4c Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Thu, 29 Sep 2022 17:49:20 +0200 Subject: [PATCH] add some more error checking --- src/ddclipper.c | 3 +++ src/ddsurface.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ddclipper.c b/src/ddclipper.c index ecbb56e..a3bc388 100644 --- a/src/ddclipper.c +++ b/src/ddclipper.c @@ -38,6 +38,9 @@ HRESULT ddc_GetClipList(IDirectDrawClipperImpl* This, LPRECT lpRect, LPRGNDATA l if (lpRect) DeleteObject(region); + if (*lpdwSiz == 0) + return DDERR_REGIONTOOSMALL; + return DD_OK; } diff --git a/src/ddsurface.c b/src/ddsurface.c index 2d4c21a..c668155 100644 --- a/src/ddsurface.c +++ b/src/ddsurface.c @@ -79,7 +79,7 @@ HRESULT dds_Blt( { DWORD size = 0; - if (SUCCEEDED(IDirectDrawClipper_GetClipList(This->clipper, &dst_rect, NULL, &size)) && size > 0) + if (SUCCEEDED(IDirectDrawClipper_GetClipList(This->clipper, &dst_rect, NULL, &size))) { RGNDATA* list = (RGNDATA*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);