From a5a47d3beeab466f5af0309521ee1f751a0cffb9 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Fri, 10 Nov 2023 15:38:24 -0800
Subject: [PATCH] Fixed crash if there is no controller mapping
---
test/gamepadutils.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/test/gamepadutils.c b/test/gamepadutils.c
index 80e69630aa4b..123224336a65 100644
--- a/test/gamepadutils.c
+++ b/test/gamepadutils.c
@@ -766,6 +766,10 @@ static SDL_bool GetButtonBindingString(SDL_GamepadButton button, char *mapping,
char label[32];
SDL_bool baxy_mapping = SDL_FALSE;
+ if (!mapping) {
+ return SDL_FALSE;
+ }
+
SDL_snprintf(label, sizeof(label), ",%s:", SDL_GetGamepadStringForButton(button));
if (GetBindingString(label, mapping, text, size)) {
return SDL_TRUE;
@@ -2543,7 +2547,7 @@ static SDL_bool MappingHasKey(const char *mapping, const char *key)
if (i < 0) {
SDL_bool baxy_mapping = SDL_FALSE;
- if (SDL_strstr(mapping, ",hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1") != NULL) {
+ if (mapping && SDL_strstr(mapping, ",hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1") != NULL) {
baxy_mapping = SDL_TRUE;
}
i = FindMappingKey(&parts, GetLegacyKey(key, baxy_mapping));
@@ -2567,7 +2571,7 @@ static char *GetMappingValue(const char *mapping, const char *key)
if (i < 0) {
SDL_bool baxy_mapping = SDL_FALSE;
- if (SDL_strstr(mapping, ",hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1") != NULL) {
+ if (mapping && SDL_strstr(mapping, ",hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1") != NULL) {
baxy_mapping = SDL_TRUE;
}
i = FindMappingKey(&parts, GetLegacyKey(key, baxy_mapping));