From 8bc4d1a94ef5583c39f3926fa6fdb6bdffe7e195 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 7 Sep 2009 16:04:44 +0000 Subject: [PATCH] Kenneth Bull to SDL I noticed in trunk/SDL/src/video/win32/SDL_win32events.c, in this code here... ... if the device handle isn't found in mice[], which it won't be if the mouse was plugged in after SDL_Init, then you end up with an uninitialized value in index, which is then passed to various SDL_SendMouse* functions. --- src/video/win32/SDL_win32events.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/video/win32/SDL_win32events.c b/src/video/win32/SDL_win32events.c index 5dcbfa765..682832e05 100644 --- a/src/video/win32/SDL_win32events.c +++ b/src/video/win32/SDL_win32events.c @@ -236,7 +236,7 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { LPBYTE lpb; const RAWINPUTHEADER *header; - int index; + int index = -1; int i; int size = 0; const RAWMOUSE *raw_mouse = NULL; @@ -261,6 +261,10 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) break; } } + if (index < 0) { + /* New mouse? Should we dynamically update mouse list? */ + return (0); + } GetCursorPos(&point); ScreenToClient(hwnd, &point);