Module: wine Branch: master Commit: 8e6e420a9d3fe292f019a2f215941ca7836887f8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8e6e420a9d3fe292f019a2f215... Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Sat Jan 26 13:39:44 2013 +0100 ddraw: Check for NULL pointers in DeleteViewport. --- dlls/ddraw/device.c | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c index 8b4e1e4..92828aa 100644 --- a/dlls/ddraw/device.c +++ b/dlls/ddraw/device.c @@ -817,6 +817,12 @@ static HRESULT WINAPI d3d_device3_DeleteViewport(IDirect3DDevice3 *iface, IDirec TRACE("iface %p, viewport %p.\n", iface, viewport); + if (!vp) + { + WARN("NULL viewport, returning DDERR_INVALIDPARAMS\n"); + return DDERR_INVALIDPARAMS; + } + wined3d_mutex_lock(); if (vp->active_device != device) @@ -841,7 +847,8 @@ static HRESULT WINAPI d3d_device2_DeleteViewport(IDirect3DDevice2 *iface, IDirec TRACE("iface %p, viewport %p.\n", iface, viewport); - return d3d_device3_DeleteViewport(&device->IDirect3DDevice3_iface, &vp->IDirect3DViewport3_iface); + return d3d_device3_DeleteViewport(&device->IDirect3DDevice3_iface, + vp ? &vp->IDirect3DViewport3_iface : NULL); } static HRESULT WINAPI d3d_device1_DeleteViewport(IDirect3DDevice *iface, IDirect3DViewport *viewport) @@ -851,7 +858,8 @@ static HRESULT WINAPI d3d_device1_DeleteViewport(IDirect3DDevice *iface, IDirect TRACE("iface %p, viewport %p.\n", iface, viewport); - return d3d_device3_DeleteViewport(&device->IDirect3DDevice3_iface, &vp->IDirect3DViewport3_iface); + return d3d_device3_DeleteViewport(&device->IDirect3DDevice3_iface, + vp ? &vp->IDirect3DViewport3_iface : NULL); } /*****************************************************************************