Skip to content

Commit fd80626

Browse files
committed
#2302: Check buffer boundaries for fs read
1 parent 6b043c0 commit fd80626

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/vt/metrics/perf_data.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,16 +146,16 @@ std::unordered_map<std::string, uint64_t> PerfData::getTaskMeasurements() {
146146
uint64_t count = 0;
147147

148148
if (event_fds_[i] != -1) {
149-
ssize_t bytesRead = read(event_fds_[i], &count, sizeof(uint64_t));
149+
ssize_t bytesRead = read(event_fds_[i], &count, sizeof(count));
150150

151-
if (bytesRead == sizeof(uint64_t)) {
151+
if (bytesRead == sizeof(count)) {
152152
measurements[event_names_[i]] = count;
153153
} else if (bytesRead == -1) {
154154
vtAbort("Failed to read perf event data for: " + event_names_[i] +
155155
". Error: " + std::strerror(errno));
156156
} else {
157157
vtAbort("Incomplete read for: " + event_names_[i] +
158-
". Expected " + std::to_string(sizeof(uint64_t)) +
158+
". Expected " + std::to_string(sizeof(count)) +
159159
" bytes, but got " + std::to_string(bytesRead));
160160
}
161161
} else {

0 commit comments

Comments
 (0)