From de3825274e913dfe5acf46bb0f8220934ac79701 Mon Sep 17 00:00:00 2001 From: gibbed Date: Sun, 2 May 2021 08:08:21 -0500 Subject: [PATCH] [Base] Fix edge case in UTF-8 fnfp/fbp. [Base] Fix edge case in UTF-8 find_name_from_path/find_base_path with strings that consist of only a separator. --- src/xenia/base/utf8.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/xenia/base/utf8.cc b/src/xenia/base/utf8.cc index 59f447891..364b8314a 100644 --- a/src/xenia/base/utf8.cc +++ b/src/xenia/base/utf8.cc @@ -560,6 +560,9 @@ std::string find_name_from_path(const std::string_view path, // path is padded with separator size_t padding = 0; if (*it == uint32_t(separator)) { + if (it == begin) { + return std::string(); + } --it; --end; padding = 1; @@ -626,7 +629,11 @@ std::string find_base_path(const std::string_view path, char32_t separator) { auto it = end; --it; + // skip trailing separator if (*it == uint32_t(separator)) { + if (it == begin) { + return std::string(); + } --it; }