Make HIDAPI_JoystickOpen() more robust against internal logic errors
Fixes https://github.com/libsdl-org/SDL/issues/6030main
parent
bdc7f958fd
commit
9ff498e78e
|
@ -1100,10 +1100,15 @@ HIDAPI_JoystickGetDeviceInstanceID(int device_index)
|
||||||
static int
|
static int
|
||||||
HIDAPI_JoystickOpen(SDL_Joystick *joystick, int device_index)
|
HIDAPI_JoystickOpen(SDL_Joystick *joystick, int device_index)
|
||||||
{
|
{
|
||||||
SDL_JoystickID joystickID;
|
SDL_JoystickID joystickID = -1;
|
||||||
SDL_HIDAPI_Device *device = HIDAPI_GetDeviceByIndex(device_index, &joystickID);
|
SDL_HIDAPI_Device *device = HIDAPI_GetDeviceByIndex(device_index, &joystickID);
|
||||||
struct joystick_hwdata *hwdata;
|
struct joystick_hwdata *hwdata;
|
||||||
|
|
||||||
|
if (!device || !device->driver) {
|
||||||
|
/* This should never happen - validated before being called */
|
||||||
|
return SDL_SetError("Couldn't find HIDAPI device at index %d\n", device_index);
|
||||||
|
}
|
||||||
|
|
||||||
hwdata = (struct joystick_hwdata *)SDL_calloc(1, sizeof(*hwdata));
|
hwdata = (struct joystick_hwdata *)SDL_calloc(1, sizeof(*hwdata));
|
||||||
if (!hwdata) {
|
if (!hwdata) {
|
||||||
return SDL_OutOfMemory();
|
return SDL_OutOfMemory();
|
||||||
|
|
Loading…
Reference in New Issue