diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-03-18 19:05:23 -0300 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-03-18 19:06:16 -0300 |
commit | ac7ee21331c903ab24856850a5003c4f79ae5d42 (patch) | |
tree | 6f7b3dfcfb9d43234847e6ccef603734f4f60b0b /src | |
parent | 56ea0f8acb89ebc9ab2191f130460c68a2471677 (diff) |
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.cpp | 2 |
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) { return {}; } - std::vector<char> raw_data(binary_list->GetSize()); + std::vector<char> raw_data(binary_list->GetSize() + 1); binary_list->ReadBytes<char>(raw_data.data(), binary_list->GetSize()); std::stringstream data_stream{raw_data.data()}; |