From 338def1b06537732f617d388134080cd9d6bbdf9 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Thu, 4 Apr 2024 14:39:15 +0100 Subject: [PATCH] Fix: Segfault when using -q without providing a . character. (#12418) Use std::filesystem::path to find extension instead of strrchr. --- src/openttd.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/openttd.cpp b/src/openttd.cpp index 31b9220bbb..7414fe29b1 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -628,7 +628,8 @@ int openttd_main(int argc, char *argv[]) return ret; } - auto [_, title] = FiosGetSavegameListCallback(SLO_LOAD, mgo.opt, strrchr(mgo.opt, '.')); + std::string extension = std::filesystem::path(_file_to_saveload.name).extension().string(); + auto [_, title] = FiosGetSavegameListCallback(SLO_LOAD, mgo.opt, extension); _load_check_data.Clear(); SaveOrLoadResult res = SaveOrLoad(mgo.opt, SLO_CHECK, DFT_GAME_FILE, SAVE_DIR, false);