From aacb41102f4f8325179df55a72f2fcea51139c1c Mon Sep 17 00:00:00 2001 From: Levi Pearson Date: Fri, 27 Jan 2017 21:56:26 -0700 Subject: [PATCH] Fix crash when launcher files don't have extensions. --- RetroFE/Source/Main.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/RetroFE/Source/Main.cpp b/RetroFE/Source/Main.cpp index 84d2fac..041bd54 100644 --- a/RetroFE/Source/Main.cpp +++ b/RetroFE/Source/Main.cpp @@ -156,9 +156,16 @@ bool ImportConfiguration(Configuration *c) if (dirp->d_type != DT_DIR && std::string(dirp->d_name) != "." && std::string(dirp->d_name) != "..") { std::string basename = dirp->d_name; + std::string::size_type dot_position = basename.find_last_of("."); - std::string extension = basename.substr(basename.find_last_of("."), basename.size()-1); - basename = basename.substr(0, basename.find_last_of(".")); + if (dot_position == std::string::npos) + { + Logger::write(Logger::ZONE_NOTICE, "RetroFE", "Extension missing on launcher file \"" + basename + "\""); + continue; + } + + std::string extension = basename.substr(dot_position, basename.size()-1); + basename = basename.substr(0, dot_position); if(extension == ".conf") {