From 0ee151623cb1564b1357db751d0d3fb8c35c53f0 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 9e73f1d26b..a1db339617 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);