Procházet zdrojové kódy

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

Sam Lantinga před 8 roky
rodič
revize
89abbbfe9e
1 změnil soubory, kde provedl 10 přidání a 2 odebrání
  1. 10 2
      src/joystick/SDL_gamecontroller.c

+ 10 - 2
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) {