Check bounds in SDL_IsGameController. Switch two functions to SDL_bool.
authorJørgen P. Tjernø <jorgen@valvesoftware.com>
Tue, 12 Feb 2013 17:07:21 -0800
changeset 6871 bd681c870ccf
parent 6870 31dee5110b4d
child 6872 2f4c95464651
Check bounds in SDL_IsGameController. Switch two functions to SDL_bool. Switches SDL_GameControllerGetAttached and SDL_IsGameController to return SDL_bool, instead of int.
include/SDL_gamecontroller.h
src/joystick/SDL_gamecontroller.c
--- a/include/SDL_gamecontroller.h	Tue Feb 12 16:17:24 2013 -0800
+++ b/include/SDL_gamecontroller.h	Tue Feb 12 17:07:21 2013 -0800
@@ -113,7 +113,7 @@
  *  Is the joystick on this index supported by the game controller interface?
  *		returns 1 if supported, 0 otherwise.
  */
-extern DECLSPEC int SDLCALL SDL_IsGameController(int joystick_index);
+extern DECLSPEC SDL_bool SDLCALL SDL_IsGameController(int joystick_index);
 
 
 /**
@@ -141,7 +141,7 @@
 /**
  *  Returns 1 if the controller has been opened and currently connected, or 0 if it has not.
  */
-extern DECLSPEC int SDLCALL SDL_GameControllerGetAttached(SDL_GameController * gamecontroller);
+extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerGetAttached(SDL_GameController * gamecontroller);
 
 /**
  *  Get the underlying joystick object used by a controller
--- a/src/joystick/SDL_gamecontroller.c	Tue Feb 12 16:17:24 2013 -0800
+++ b/src/joystick/SDL_gamecontroller.c	Tue Feb 12 17:07:21 2013 -0800
@@ -265,6 +265,10 @@
  */
 ControllerMapping_t *SDL_PrivateGetControllerMapping(int device_index)
 {
+    if ( (device_index < 0) || (device_index >= SDL_NumJoysticks()) ) {
+        return NULL;
+    }
+
 #ifdef SDL_JOYSTICK_DINPUT
 	if ( SDL_SYS_IsXInputDeviceIndex(device_index) && s_pXInputMapping )
 	{
@@ -741,14 +745,16 @@
 /*
  * Return 1 if the joystick at this device index is a supported controller
  */
-int SDL_IsGameController(int device_index)
+SDL_bool
+SDL_IsGameController(int device_index)
 {
 	ControllerMapping_t *pSupportedController =  SDL_PrivateGetControllerMapping(device_index);
 	if ( pSupportedController )
 	{
-		return 1;
+		return SDL_TRUE;
 	}
-	return 0;
+
+	return SDL_FALSE;
 }
 
 /*
@@ -881,11 +887,11 @@
  * Return if the joystick in question is currently attached to the system,
  *  \return 0 if not plugged in, 1 if still present.
  */
-int
+SDL_bool
 SDL_GameControllerGetAttached( SDL_GameController * gamecontroller )
 {
 	if ( !gamecontroller )
-		return 0;
+		return SDL_FALSE;
 
 	return SDL_JoystickGetAttached(gamecontroller->joystick);
 }