Minor sanity checking and tweaks in SDL_JoystickGetGUIDString().
authorRyan C. Gordon <icculus@icculus.org>
Tue, 11 Dec 2012 18:46:09 -0500
changeset 6748 80a6aac67ad9
parent 6747 b617821795bf
child 6749 87254cb5734f
Minor sanity checking and tweaks in SDL_JoystickGetGUIDString().
src/joystick/SDL_joystick.c
--- a/src/joystick/SDL_joystick.c	Tue Dec 11 16:53:59 2012 -0500
+++ b/src/joystick/SDL_joystick.c	Tue Dec 11 18:46:09 2012 -0500
@@ -698,22 +698,22 @@
 void SDL_JoystickGetGUIDString( SDL_JoystickGUID guid, char *pszGUID, int cbGUID )
 {
 	static const char k_rgchHexToASCII[] = "0123456789abcdef";
-	char *pchOut = NULL;
-	char *pchString = NULL;
 	int i;
-	
-	pchOut = pszGUID;
 
-	for ( i = 0; i < sizeof(guid) && i < (cbGUID-1); i++ )
+    if ((pszGUID == NULL) || (cbGUID <= 0)) {
+        return;
+    }
+
+	for ( i = 0; i < sizeof(guid.data) && i < (cbGUID-1); i++ )
 	{
 		// each input byte writes 2 ascii chars, and might write a null byte.
 		// If we don't have room for next input byte, stop
 		unsigned char c = guid.data[i];
 
-		*pchOut++ = k_rgchHexToASCII[ c >> 4 ];
-		*pchOut++ = k_rgchHexToASCII[ c & 0x0F ];
+		*pszGUID++ = k_rgchHexToASCII[ c >> 4 ];
+		*pszGUID++ = k_rgchHexToASCII[ c & 0x0F ];
 	}
-	*pchOut = '\0';
+	*pszGUID = '\0';
 }