Module: wine Branch: master Commit: 2afd2f705f9352947527b95fbdd9af95c2a726b2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=2afd2f705f9352947527b95fbd...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Tue Jun 7 21:18:37 2016 +0200
ddraw: Avoid accessing free'd memory on an error path in ddraw_surface_create().
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ddraw/surface.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index d36afe7..1cbd6c3 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -5754,10 +5754,9 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_ if (desc->dwFlags & DDSD_BACKBUFFERCOUNT) { WARN("Tried to specify a back buffer count for a non-flippable surface.\n"); + hr = desc->ddsCaps.dwCaps2 & DDSCAPS2_CUBEMAP ? DDERR_INVALIDPARAMS : DDERR_INVALIDCAPS; HeapFree(GetProcessHeap(), 0, texture); - if (desc->ddsCaps.dwCaps2 & DDSCAPS2_CUBEMAP) - return DDERR_INVALIDPARAMS; - return DDERR_INVALIDCAPS; + return hr; } }