Vitaliy Margolen : dinput: Don't mask buffer overflow error.

Alexandre Julliard julliard at winehq.org
Mon Oct 17 13:08:53 CDT 2011


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

Author: Vitaliy Margolen <wine-patches at kievinfo.com>
Date:   Sun Oct 16 12:36:48 2011 -0600

dinput: Don't mask buffer overflow error.

---

 dlls/dinput/device.c |    2 +-
 dlls/dinput/mouse.c  |   10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c
index a9c7b87..75b3cb5 100644
--- a/dlls/dinput/device.c
+++ b/dlls/dinput/device.c
@@ -1307,7 +1307,7 @@ HRESULT WINAPI IDirectInputDevice2WImpl_GetDeviceData(LPDIRECTINPUTDEVICE8W ifac
     }
     *entries = len;
 
-    if (This->overflow)
+    if (This->overflow && This->dinput->dwVersion == 0x0800)
         ret = DI_BUFFEROVERFLOW;
 
     if (!(flags & DIGDD_PEEK))
diff --git a/dlls/dinput/mouse.c b/dlls/dinput/mouse.c
index 011deb0..4b65e89 100644
--- a/dlls/dinput/mouse.c
+++ b/dlls/dinput/mouse.c
@@ -419,7 +419,7 @@ static int dinput_mouse_hook( LPDIRECTINPUTDEVICE8A iface, WPARAM wparam, LPARAM
     return ret;
 }
 
-static HRESULT warp_check( SysMouseImpl* This, BOOL force )
+static void warp_check( SysMouseImpl* This, BOOL force )
 {
     DWORD now = GetCurrentTime();
     const DWORD interval = This->clipped ? 500 : 10;
@@ -430,7 +430,7 @@ static HRESULT warp_check( SysMouseImpl* This, BOOL force )
 
         This->last_warped = now;
         This->need_warp = FALSE;
-        if (!GetWindowRect(This->base.win, &rect)) return DIERR_GENERIC;
+        if (!GetWindowRect(This->base.win, &rect)) return;
         This->mapped_center.x = (rect.left + rect.right) / 2;
         This->mapped_center.y = (rect.top + rect.bottom) / 2;
         if (!This->clipped)
@@ -447,7 +447,6 @@ static HRESULT warp_check( SysMouseImpl* This, BOOL force )
             This->clipped = GetClipCursor( &new_rect ) && EqualRect( &rect, &new_rect );
         }
     }
-    return DI_OK;
 }
 
 
@@ -569,7 +568,8 @@ static HRESULT WINAPI SysMouseWImpl_GetDeviceState(LPDIRECTINPUTDEVICE8W iface,
     }
     LeaveCriticalSection(&This->base.crit);
 
-    return warp_check( This, FALSE );
+    warp_check( This, FALSE );
+    return DI_OK;
 }
 
 static HRESULT WINAPI SysMouseAImpl_GetDeviceState(LPDIRECTINPUTDEVICE8A iface, DWORD len, LPVOID ptr)
@@ -588,7 +588,7 @@ static HRESULT WINAPI SysMouseWImpl_GetDeviceData(LPDIRECTINPUTDEVICE8W iface,
     HRESULT res;
 
     res = IDirectInputDevice2WImpl_GetDeviceData(iface, dodsize, dod, entries, flags);
-    if (SUCCEEDED(res)) res = warp_check( This, FALSE );
+    if (SUCCEEDED(res)) warp_check( This, FALSE );
     return res;
 }
 




More information about the wine-cvs mailing list