summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMai M <mathew1800@gmail.com>2021-08-05 05:32:01 +0200
committerGitHub <noreply@github.com>2021-08-05 05:32:01 +0200
commita1cb453470d95f7bcedf6235e6a2761bc2ef34c8 (patch)
treea5d271f9e78772bfaa8779ca51bb2be26486120e
parentMerge pull request #6818 from Morph1984/hex-util-bug (diff)
parentapplet_swkbd: Include the null terminator in the buffer size calculation (diff)
downloadyuzu-a1cb453470d95f7bcedf6235e6a2761bc2ef34c8.tar
yuzu-a1cb453470d95f7bcedf6235e6a2761bc2ef34c8.tar.gz
yuzu-a1cb453470d95f7bcedf6235e6a2761bc2ef34c8.tar.bz2
yuzu-a1cb453470d95f7bcedf6235e6a2761bc2ef34c8.tar.lz
yuzu-a1cb453470d95f7bcedf6235e6a2761bc2ef34c8.tar.xz
yuzu-a1cb453470d95f7bcedf6235e6a2761bc2ef34c8.tar.zst
yuzu-a1cb453470d95f7bcedf6235e6a2761bc2ef34c8.zip
-rw-r--r--src/core/hle/service/am/applets/applet_software_keyboard.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/hle/service/am/applets/applet_software_keyboard.cpp b/src/core/hle/service/am/applets/applet_software_keyboard.cpp
index 673abb755..c89aa1bbf 100644
--- a/src/core/hle/service/am/applets/applet_software_keyboard.cpp
+++ b/src/core/hle/service/am/applets/applet_software_keyboard.cpp
@@ -377,7 +377,8 @@ void SoftwareKeyboard::SubmitForTextCheck(std::u16string submitted_text) {
if (swkbd_config_common.use_utf8) {
std::string utf8_submitted_text = Common::UTF16ToUTF8(current_text);
- const u64 buffer_size = utf8_submitted_text.size();
+ // Include the null terminator in the buffer size.
+ const u64 buffer_size = utf8_submitted_text.size() + 1;
LOG_DEBUG(Service_AM, "\nBuffer Size: {}\nUTF-8 Submitted Text: {}", buffer_size,
utf8_submitted_text);
@@ -386,7 +387,8 @@ void SoftwareKeyboard::SubmitForTextCheck(std::u16string submitted_text) {
std::memcpy(out_data.data() + sizeof(u64), utf8_submitted_text.data(),
utf8_submitted_text.size());
} else {
- const u64 buffer_size = current_text.size() * sizeof(char16_t);
+ // Include the null terminator in the buffer size.
+ const u64 buffer_size = (current_text.size() + 1) * sizeof(char16_t);
LOG_DEBUG(Service_AM, "\nBuffer Size: {}\nUTF-16 Submitted Text: {}", buffer_size,
Common::UTF16ToUTF8(current_text));