From f83841df384605caacfd45a4e402626561514def Mon Sep 17 00:00:00 2001 From: Eric Warmenhoven Date: Mon, 9 Dec 2024 23:47:29 -0500 Subject: [PATCH] probably fix crash setting overlay (#17243) --- input/input_driver.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/input/input_driver.c b/input/input_driver.c index 8be3dcd294..51d454f631 100644 --- a/input/input_driver.c +++ b/input/input_driver.c @@ -5273,10 +5273,13 @@ static const char *input_overlay_path(bool want_osk) playlist_get_db_name(playlist, menu->rpl_entry_selection_ptr, &playlist_db_name); if (playlist_db_name) { - fill_pathname_join_special_ext(system_overlay_path, + size_t _len = fill_pathname_join_special_ext(system_overlay_path, overlay_directory, SYSTEM_OVERLAY_DIR, playlist_db_name, "", sizeof(system_overlay_path)); - strlcpy(path_get_extension_mutable(system_overlay_path), ".cfg", 5); + char *ext = path_get_extension_mutable(system_overlay_path); + if (!ext) + ext = system_overlay_path + _len; + strlcpy(ext, ".cfg", 5); if (path_is_valid(system_overlay_path)) return system_overlay_path; } @@ -5288,10 +5291,13 @@ static const char *input_overlay_path(bool want_osk) playlist_get_index_by_path(playlist, content_path, &entry); if (entry && entry->db_name) { - fill_pathname_join_special_ext(system_overlay_path, + size_t _len = fill_pathname_join_special_ext(system_overlay_path, overlay_directory, SYSTEM_OVERLAY_DIR, entry->db_name, "", sizeof(system_overlay_path)); - strlcpy(path_get_extension_mutable(system_overlay_path), ".cfg", 5); + char *ext = path_get_extension_mutable(system_overlay_path); + if (!ext) + ext = system_overlay_path + _len; + strlcpy(ext, ".cfg", 5); if (path_is_valid(system_overlay_path)) return system_overlay_path; }