From c7358ea4883aa508d2c9523567aaddae18c29d2e Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Tue, 7 Mar 2023 21:29:19 +0100 Subject: [PATCH] add size limit for surfaces --- src/ddsurface.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ddsurface.c b/src/ddsurface.c index b8ff738..a091a43 100644 --- a/src/ddsurface.c +++ b/src/ddsurface.c @@ -1279,6 +1279,12 @@ HRESULT dd_CreateSurface( if (lpDDSurfaceDesc->ddsCaps.dwCaps & DDSCAPS_OVERLAY) return DDERR_UNSUPPORTED; + if (!(lpDDSurfaceDesc->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) && + (lpDDSurfaceDesc->dwWidth > 16384 || lpDDSurfaceDesc->dwHeight > 16384)) + { + return DDERR_INVALIDPARAMS; + } + if ((lpDDSurfaceDesc->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) && g_ddraw->primary && g_ddraw->primary->width == g_ddraw->width &&