Procházet zdrojové kódy

joystick: virtual: Fix event injection for axes/hats

SDL_JoystickSetVirtualAxisInner() and SDL_JoystickSetVirtualHatInner()
did not properly sanitize the 'axis' and 'hat' parameters.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Paul Cercueil před 3 roky
rodič
revize
db5cd8c694
1 změnil soubory, kde provedl 2 přidání a 2 odebrání
  1. 2 2
      src/joystick/virtual/SDL_virtualjoystick.c

+ 2 - 2
src/joystick/virtual/SDL_virtualjoystick.c

@@ -176,7 +176,7 @@ SDL_JoystickSetVirtualAxisInner(SDL_Joystick * joystick, int axis, Sint16 value)
     }
 
     hwdata = (joystick_hwdata *)joystick->hwdata;
-    if (axis < 0 || axis >= hwdata->nbuttons) {
+    if (axis < 0 || axis >= hwdata->naxes) {
         SDL_UnlockJoysticks();
         return SDL_SetError("Invalid axis index");
     }
@@ -226,7 +226,7 @@ SDL_JoystickSetVirtualHatInner(SDL_Joystick * joystick, int hat, Uint8 value)
     }
 
     hwdata = (joystick_hwdata *)joystick->hwdata;
-    if (hat < 0 || hat >= hwdata->nbuttons) {
+    if (hat < 0 || hat >= hwdata->nhats) {
         SDL_UnlockJoysticks();
         return SDL_SetError("Invalid hat index");
     }