diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2022-12-09 23:09:44 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2022-12-09 23:09:44 +0000 |
commit | 38a78120109d109d00cf937522f1c2b5f7f944ac (patch) | |
tree | a2989f72b647012a10c6f5fa2318360d6336f4bf | |
parent | b78eb761a0b95ed6249212ccb9bfcc4637f9ead8 (diff) | |
parent | 6b8e0dfc6f9026d9d70dc5d46c74a9a742efb8db (diff) | |
download | extras-38a78120109d109d00cf937522f1c2b5f7f944ac.tar.gz |
Merge "simpleperf: fix CHECK_SIZE_U64"
-rw-r--r-- | simpleperf/record.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/simpleperf/record.cpp b/simpleperf/record.cpp index 9662b6f7..8d9ce00c 100644 --- a/simpleperf/record.cpp +++ b/simpleperf/record.cpp @@ -39,7 +39,12 @@ namespace simpleperf { } \ } while (0) -#define CHECK_SIZE_U64(p, end, u64_count) CHECK_SIZE(p, end, (u64_count) * sizeof(uint64_t)) +#define CHECK_SIZE_U64(p, end, u64_count) \ + do { \ + if (UNLIKELY(((end) - (p)) / sizeof(uint64_t) < (u64_count))) { \ + return false; \ + } \ + } while (0) static std::string RecordTypeToString(int record_type) { static std::unordered_map<int, std::string> record_type_names = { |