diff options
author | gmx <gmx@google.com> | 2023-11-14 23:32:32 -0800 |
---|---|---|
committer | gmarin13 <gmarin13@users.noreply.github.com> | 2023-11-28 13:42:45 -0800 |
commit | 12da678f7452a76447bc16de33d611b150f4bed4 (patch) | |
tree | 6e4d377ddf6f41e09377b62263732983b3e0ded9 | |
parent | df0422804fc06863ca3f04b7d31b551384bb7e7a (diff) | |
download | perf_data_converter-12da678f7452a76447bc16de33d611b150f4bed4.tar.gz |
Check that the parsed number of events doesn't exceed the maximum representable
int value.
PiperOrigin-RevId: 582556489
-rw-r--r-- | src/quipper/perf_reader.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/quipper/perf_reader.cc b/src/quipper/perf_reader.cc index 6a1850c..006d571 100644 --- a/src/quipper/perf_reader.cc +++ b/src/quipper/perf_reader.cc @@ -10,6 +10,7 @@ #include <sys/time.h> #include <algorithm> +#include <limits> #include <vector> #include "base/logging.h" @@ -1513,6 +1514,10 @@ bool PerfReader::ReadEventDescMetadata(DataReader* data) { LOG(ERROR) << "Error reading event_desc nr_events."; return false; } + if (nr_events > std::numeric_limits<int>::max()) { + LOG(ERROR) << "Parsed nr_events exceeds the max representable int value."; + return false; + } u32 attr_size; if (!data->ReadUint32(&attr_size)) { |