Module: wine Branch: stable Commit: b357d44e9efcef300c481f1182fc01aaf6bc201c URL: https://source.winehq.org/git/wine.git/?a=commit;h=b357d44e9efcef300c481f118...
Author: Zhiyi Zhang zzhang@codeweavers.com Date: Wed Jan 23 23:27:09 2019 +0800
user32: Check for null handle in GetRawInputData().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46499 Signed-off-by: Zhiyi Zhang zzhang@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org (cherry picked from commit bd730a5f412c1e3b8a05b3b297ca0642e23fb92b) Signed-off-by: Michael Stefaniuc mstefani@winehq.org
---
dlls/user32/rawinput.c | 3 +++ dlls/user32/tests/input.c | 11 +++++++++++ 2 files changed, 14 insertions(+)
diff --git a/dlls/user32/rawinput.c b/dlls/user32/rawinput.c index cf3028a..4bfccdf 100644 --- a/dlls/user32/rawinput.c +++ b/dlls/user32/rawinput.c @@ -281,6 +281,9 @@ 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) + return ~0U; + if (header_size != sizeof(RAWINPUTHEADER)) { WARN("Invalid structure size %u.\n", header_size); diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c index 14fd5f8..ffdd4b7 100644 --- a/dlls/user32/tests/input.c +++ b/dlls/user32/tests/input.c @@ -1530,6 +1530,16 @@ static void test_GetRawInputDeviceList(void) ok(odevcount == oret, "expected %d, got %d\n", oret, odevcount); }
+static void test_GetRawInputData(void) +{ + UINT size; + UINT ret; + + /* Null raw input handle */ + ret = GetRawInputData(NULL, RID_INPUT, NULL, &size, sizeof(RAWINPUTHEADER)); + ok(ret == ~0U, "Expect ret %u, got %u\n", ~0U, ret); +} + static void test_key_map(void) { HKL kl = GetKeyboardLayout(0); @@ -2697,6 +2707,7 @@ START_TEST(input) test_attach_input(); test_GetKeyState(); test_OemKeyScan(); + test_GetRawInputData();
if(pGetMouseMovePointsEx) test_GetMouseMovePointsEx();