mirror of
https://github.com/reactos/syzkaller.git
synced 2025-02-16 09:38:01 +00:00
![Alexander Potapenko](/assets/img/avatar_default.png)
When executors send coverage data to the manager, they clamp the addresses of covered blocks to 32 bits. Manager uses RestorePC() to restore the original addresses. Previously, RestorePC() assumed that the upper 4 bytes of a kernel code address were 0xffffffff, which is not so on Android. Instead we now parse `readelf -SW vmlinux` output to obtain the upper bytes of PROGBITS sections VMAs in the case those VMAs are non-zero. We assume that the upper 4 bytes are the same for every section.