From e1de070f8aeae8de1d94d5612536350e2eb604e9 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Tue, 11 Dec 2012 18:46:09 -0500 Subject: [PATCH] Minor sanity checking and tweaks in SDL_JoystickGetGUIDString(). --- src/joystick/SDL_joystick.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/joystick/SDL_joystick.c b/src/joystick/SDL_joystick.c index 077f131d2..fe45a023d 100644 --- a/src/joystick/SDL_joystick.c +++ b/src/joystick/SDL_joystick.c @@ -698,22 +698,22 @@ SDL_JoystickGUID SDL_JoystickGetGUID(SDL_Joystick * joystick) 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'; }