diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c index 905bec09898d303aff78604da9c1c2c1ab28f035..68ebc5e9413adf11bbed87b1e64662aa25378beb 100644 --- a/src/sdl/i_system.c +++ b/src/sdl/i_system.c @@ -1453,11 +1453,11 @@ INT32 I_NumJoys(void) return numjoy; } +static char joyname[255]; // MAX_PATH; joystick name is straight from the driver + const char *I_GetJoyName(INT32 joyindex) { const char *tempname = NULL; - size_t templen; - char *joyname = NULL; joyindex--; //SDL's Joystick System starts at 0, not 1 if (SDL_WasInit(SDL_INIT_JOYSTICK) == 0) { @@ -1465,11 +1465,7 @@ const char *I_GetJoyName(INT32 joyindex) { tempname = SDL_JoystickNameForIndex(joyindex); if (tempname) - { - templen = strlen(tempname); - joyname = malloc(templen*sizeof(char)); - strcpy(joyname, tempname); - } + strncpy(joyname, tempname, 255); } SDL_QuitSubSystem(SDL_INIT_JOYSTICK); } @@ -1477,11 +1473,7 @@ const char *I_GetJoyName(INT32 joyindex) { tempname = SDL_JoystickNameForIndex(joyindex); if (tempname) - { - templen = strlen(tempname); - joyname = malloc(templen*sizeof(char)); - strcpy(joyname, tempname); - } + strncpy(joyname, tempname, 255); } return joyname; } diff --git a/src/sdl12/i_system.c b/src/sdl12/i_system.c index c4dd96f8489fb462e4f734e2bdee4d72f9231de7..10fbc50eed0892fa9301560477b0f8c84d1d7530 100644 --- a/src/sdl12/i_system.c +++ b/src/sdl12/i_system.c @@ -1575,11 +1575,11 @@ INT32 I_NumJoys(void) return numjoy; } +static char joyname[255]; // MAX_PATH; joystick name is straight from the driver + const char *I_GetJoyName(INT32 joyindex) { const char *tempname = NULL; - size_t templen; - char *joyname = NULL; joyindex--; //SDL's Joystick System starts at 0, not 1 if (SDL_WasInit(SDL_INIT_JOYSTICK) == 0) { @@ -1587,11 +1587,7 @@ const char *I_GetJoyName(INT32 joyindex) { tempname = SDL_JoystickNameForIndex(joyindex); if (tempname) - { - templen = strlen(tempname); - joyname = malloc(templen*sizeof(char)); - strcpy(joyname, tempname); - } + strncpy(joyname, tempname, 255); } SDL_QuitSubSystem(SDL_INIT_JOYSTICK); } @@ -1599,11 +1595,7 @@ const char *I_GetJoyName(INT32 joyindex) { tempname = SDL_JoystickNameForIndex(joyindex); if (tempname) - { - templen = strlen(tempname); - joyname = malloc(templen*sizeof(char)); - strcpy(joyname, tempname); - } + strncpy(joyname, tempname, 255); } return joyname; }