summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2020-03-18 19:05:23 -0300
committerGravatar ReinUsesLisp2020-03-18 19:06:16 -0300
commitac7ee21331c903ab24856850a5003c4f79ae5d42 (patch)
tree6f7b3dfcfb9d43234847e6ccef603734f4f60b0b /src
parentMerge pull request #3530 from ReinUsesLisp/fix-clang (diff)
downloadyuzu-ac7ee21331c903ab24856850a5003c4f79ae5d42.tar.gz
yuzu-ac7ee21331c903ab24856850a5003c4f79ae5d42.tar.xz
yuzu-ac7ee21331c903ab24856850a5003c4f79ae5d42.zip
time_zone_content_manager: Fix out of bounds read
There were cases where raw_data didn't contain enough space to hold the zero terminator. This was caught with -fsanitize=address.
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/service/time/time_zone_content_manager.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/core/hle/service/time/time_zone_content_manager.cpp b/src/core/hle/service/time/time_zone_content_manager.cpp
index 57b1a2bca..78d4acd95 100644
--- a/src/core/hle/service/time/time_zone_content_manager.cpp
+++ b/src/core/hle/service/time/time_zone_content_manager.cpp
@@ -53,7 +53,7 @@ static std::vector<std::string> BuildLocationNameCache(Core::System& system) {
53 return {}; 53 return {};
54 } 54 }
55 55
56 std::vector<char> raw_data(binary_list->GetSize()); 56 std::vector<char> raw_data(binary_list->GetSize() + 1);
57 binary_list->ReadBytes<char>(raw_data.data(), binary_list->GetSize()); 57 binary_list->ReadBytes<char>(raw_data.data(), binary_list->GetSize());
58 58
59 std::stringstream data_stream{raw_data.data()}; 59 std::stringstream data_stream{raw_data.data()};