From 89c484414b044ed63005fb39ae6f6bd14019b3e0 Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Mon, 16 Sep 2019 22:49:58 -0700 Subject: [PATCH] dmnt: Truncate cheat names after maxlen instead of failing --- .../dmnt/source/cheat/impl/dmnt_cheat_api.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/stratosphere/dmnt/source/cheat/impl/dmnt_cheat_api.cpp b/stratosphere/dmnt/source/cheat/impl/dmnt_cheat_api.cpp index 5f3890729..745703d08 100644 --- a/stratosphere/dmnt/source/cheat/impl/dmnt_cheat_api.cpp +++ b/stratosphere/dmnt/source/cheat/impl/dmnt_cheat_api.cpp @@ -739,13 +739,13 @@ namespace sts::dmnt::cheat::impl { size_t j = i + 1; while (s[j] != ']') { j++; - if (j >= len || (j - i - 1) >= sizeof(cur_entry->definition.readable_name)) { + if (j >= len) { return false; } } /* s[i+1:j] is cheat name. */ - const size_t cheat_name_len = (j - i - 1); + const size_t cheat_name_len = std::min(j - i - 1, sizeof(cur_entry->definition.readable_name)); std::memcpy(cur_entry->definition.readable_name, &s[i+1], cheat_name_len); cur_entry->definition.readable_name[cheat_name_len] = 0; @@ -764,13 +764,13 @@ namespace sts::dmnt::cheat::impl { size_t j = i + 1; while (s[j] != '}') { j++; - if (j >= len || (j - i - 1) >= sizeof(cur_entry->definition.readable_name)) { + if (j >= len) { return false; } } /* s[i+1:j] is cheat name. */ - const size_t cheat_name_len = (j - i - 1); + const size_t cheat_name_len = std::min(j - i - 1, sizeof(cur_entry->definition.readable_name)); memcpy(cur_entry->definition.readable_name, &s[i+1], cheat_name_len); cur_entry->definition.readable_name[cheat_name_len] = 0; @@ -837,13 +837,13 @@ namespace sts::dmnt::cheat::impl { size_t j = i + 1; while (s[j] != ']') { j++; - if (j >= len || (j - i - 1) >= sizeof(cur_cheat_name)) { + if (j >= len) { return false; } } /* s[i+1:j] is cheat name. */ - const size_t cheat_name_len = (j - i - 1); + const size_t cheat_name_len = std::min(j - i - 1, sizeof(cur_cheat_name)); std::memcpy(cur_cheat_name, &s[i+1], cheat_name_len); cur_cheat_name[cheat_name_len] = 0;