diff --git a/test/testcontroller.c b/test/testcontroller.c index 6ea7c1660f..4e05d31fb9 100644 --- a/test/testcontroller.c +++ b/test/testcontroller.c @@ -295,16 +295,25 @@ static int StandardizeAxisValue(int nValue) static void RefreshControllerName(void) { + const char *name = NULL; + SDL_free(controller_name); controller_name = NULL; if (controller) { if (controller->gamepad) { - controller_name = SDL_strdup(SDL_GetGamepadName(controller->gamepad)); + name = SDL_GetGamepadName(controller->gamepad); } else { - controller_name = SDL_strdup(SDL_GetJoystickName(controller->joystick)); + name = SDL_GetJoystickName(controller->joystick); } } + + SDL_free(controller_name); + if (name) { + controller_name = SDL_strdup(name); + } else { + controller_name = SDL_strdup(""); + } } static void SetAndFreeGamepadMapping(char *mapping)