Commit 89abbbfe9ed2b19b018515cd9c9aadadaddf1a82

Sam Lantinga 2016-10-07T18:24:34

Fixed bug 3438 - SDL_GameControllerEventWatcher: Log on event with value >= k_nMaxReverseEntries

diff --git a/src/joystick/SDL_gamecontroller.c b/src/joystick/SDL_gamecontroller.c
index 41af66d..1d3a4c2 100644
--- a/src/joystick/SDL_gamecontroller.c
+++ b/src/joystick/SDL_gamecontroller.c
@@ -145,7 +145,11 @@ int SDL_GameControllerEventWatcher(void *userdata, SDL_Event * event)
         {
             SDL_GameController *controllerlist;
 
-            if (event->jaxis.axis >= k_nMaxReverseEntries) break;
+            if (event->jaxis.axis >= k_nMaxReverseEntries)
+            {
+                SDL_SetError("SDL_GameControllerEventWatcher: Axis index %d too large, ignoring motion", (int)event->jaxis.axis);
+                break;
+            }
 
             controllerlist = SDL_gamecontrollers;
             while (controllerlist) {
@@ -176,7 +180,11 @@ int SDL_GameControllerEventWatcher(void *userdata, SDL_Event * event)
         {
             SDL_GameController *controllerlist;
 
-            if (event->jbutton.button >= k_nMaxReverseEntries) break;
+            if (event->jbutton.button >= k_nMaxReverseEntries)
+            {
+                SDL_SetError("SDL_GameControllerEventWatcher: Button index %d too large, ignoring update", (int)event->jbutton.button);
+                break;
+            }
 
             controllerlist = SDL_gamecontrollers;
             while (controllerlist) {