summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYabin Cui <yabinc@google.com>2022-09-30 04:50:55 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2022-09-30 04:50:55 +0000
commit9dc4f921bb19a6d948f4fd04099e22bbf0768cc8 (patch)
tree63ea9fae399bf6f5b178f083017289a8fe38d144
parent05a08b61b838f66b83e38e42a3584cfab4d5186a (diff)
parentc544b388fc25ff0ea8132f20cadb00525237b6b3 (diff)
downloadextras-9dc4f921bb19a6d948f4fd04099e22bbf0768cc8.tar.gz
Merge "simpleperf: fix fuzz bug in ReadRecord()."
-rw-r--r--simpleperf/record_file_reader.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/simpleperf/record_file_reader.cpp b/simpleperf/record_file_reader.cpp
index 1740edf2..8fb592ed 100644
--- a/simpleperf/record_file_reader.cpp
+++ b/simpleperf/record_file_reader.cpp
@@ -297,6 +297,10 @@ std::unique_ptr<Record> RecordFileReader::ReadRecord() {
return nullptr;
}
RecordHeader header(header_buf);
+ if (header.size < Record::header_size()) {
+ LOG(ERROR) << "invalid record";
+ return nullptr;
+ }
std::unique_ptr<char[]> p;
if (header.type == SIMPLE_PERF_RECORD_SPLIT) {
// Read until meeting a RECORD_SPLIT_END record.