Rémi Bernon : user32: Return failure when rawinput has been overwritten.

Alexandre Julliard julliard at winehq.org
Tue Jun 30 14:55:07 CDT 2020


Module: wine
Branch: master
Commit: 359ee2ecc21b08e4118f0f77b3a208e4b5e1e63d
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=359ee2ecc21b08e4118f0f77b3a208e4b5e1e63d

Author: Rémi Bernon <rbernon at codeweavers.com>
Date:   Thu Jun 25 19:08:44 2020 +0200

user32: Return failure when rawinput has been overwritten.

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/user32/rawinput.c    | 3 ++-
 dlls/user32/tests/input.c | 3 ---
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/dlls/user32/rawinput.c b/dlls/user32/rawinput.c
index 775b066e67..b5af008e88 100644
--- a/dlls/user32/rawinput.c
+++ b/dlls/user32/rawinput.c
@@ -459,7 +459,7 @@ UINT WINAPI GetRawInputData(HRAWINPUT rawinput, UINT command, void *data, UINT *
     TRACE("rawinput %p, command %#x, data %p, data_size %p, header_size %u.\n",
             rawinput, command, data, data_size, header_size);
 
-    if (!ri)
+    if (!ri || !ri->header.dwSize)
         return ~0U;
 
     if (header_size != sizeof(RAWINPUTHEADER))
@@ -488,6 +488,7 @@ UINT WINAPI GetRawInputData(HRAWINPUT rawinput, UINT command, void *data, UINT *
 
     if (*data_size < s) return ~0U;
     memcpy(data, ri, s);
+    ri->header.dwSize = 0;
     return s;
 }
 
diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c
index 5c58990812..bab0fd9753 100644
--- a/dlls/user32/tests/input.c
+++ b/dlls/user32/tests/input.c
@@ -1913,10 +1913,7 @@ static LRESULT CALLBACK rawinputbuffer_wndproc(HWND hwnd, UINT msg, WPARAM wpara
             ok(ri.data.mouse.lLastX == 6, "Unexpected rawinput data: %d\n", ri.data.mouse.lLastX);
         }
         else
-        {
-            todo_wine
             ok(count == ~0U, "GetRawInputData succeeded\n");
-        }
     }
 
     return DefWindowProcA(hwnd, msg, wparam, lparam);




More information about the wine-cvs mailing list