=?UTF-8?Q?Stefan=20D=C3=B6singer=20?=: ddraw: Check for NULL pointers in DeleteViewport.

Alexandre Julliard julliard at winehq.org
Tue Jan 29 12:35:41 CST 2013


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

Author: Stefan Dösinger <stefan at 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);
 }
 
 /*****************************************************************************




More information about the wine-cvs mailing list