From 30516fd3a69a508e883afa59ef7a88e13b93a24c Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Wed, 11 Jan 2023 21:56:50 +0300
Subject: [PATCH] joystick/vita: add some sanity check to
SDL_GetJoystickInstanceID result
Reference issue: https://github.com/libsdl-org/SDL/issues/7051
---
src/joystick/vita/SDL_sysjoystick.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/joystick/vita/SDL_sysjoystick.c b/src/joystick/vita/SDL_sysjoystick.c
index b5299ac2c479..947e55fef620 100644
--- a/src/joystick/vita/SDL_sysjoystick.c
+++ b/src/joystick/vita/SDL_sysjoystick.c
@@ -321,8 +321,11 @@ static int VITA_JoystickRumble(SDL_Joystick *joystick, Uint16 low_frequency_rumb
{
int index = (int)SDL_GetJoystickInstanceID(joystick) - 1;
SceCtrlActuator act;
- SDL_zero(act);
+ if (index < 0 || index > 3) {
+ return -1;
+ }
+ SDL_zero(act);
act.small = high_frequency_rumble / 256;
act.large = low_frequency_rumble / 256;
if (sceCtrlSetActuator(ext_port_map[index], &act) < 0) {
@@ -345,6 +348,9 @@ static Uint32 VITA_JoystickGetCapabilities(SDL_Joystick *joystick)
static int VITA_JoystickSetLED(SDL_Joystick *joystick, Uint8 red, Uint8 green, Uint8 blue)
{
int index = (int)SDL_GetJoystickInstanceID(joystick) - 1;
+ if (index < 0 || index > 3) {
+ return -1;
+ }
if (sceCtrlSetLightBar(ext_port_map[index], red, green, blue) < 0) {
return SDL_Unsupported();
}