diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2024-11-25 11:55:35 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2024-11-26 09:08:23 +0000 |
| commit | e9a9a9f23f2a13f697d9d9572d2d4a34369a0068 (patch) | |
| tree | d61f04c8d2e168f681d6cdab936d6cbbf848fe93 /executor/executor.cc | |
| parent | a188cd36e162cc98a3f0cdbeb062bac2e7fa185d (diff) | |
executor: don't revert coverage order
Currently we write coverage backwards.
This is visible e.g. when running syz-execprog -coverfile,
and in the manager raw cover mode.
Write it in the right order.
Diffstat (limited to 'executor/executor.cc')
| -rw-r--r-- | executor/executor.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/executor/executor.cc b/executor/executor.cc index 750858be2..e8e1cb000 100644 --- a/executor/executor.cc +++ b/executor/executor.cc @@ -1169,8 +1169,9 @@ uint32 write_cover(flatbuffers::FlatBufferBuilder& fbb, cover_t* cov) cover_size = std::unique(cover_data, end) - cover_data; } fbb.StartVector(cover_size, sizeof(uint64)); + // Flatbuffer arrays are written backwards, so reverse the order on our side as well. for (uint32 i = 0; i < cover_size; i++) - fbb.PushElement(uint64(cover_data[i] + cov->pc_offset)); + fbb.PushElement(uint64(cover_data[cover_size - i - 1] + cov->pc_offset)); return fbb.EndVector(cover_size); } |
