From e9a9a9f23f2a13f697d9d9572d2d4a34369a0068 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 25 Nov 2024 11:55:35 +0100 Subject: 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. --- executor/executor.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'executor') 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); } -- cgit mrf-deployment