about summary refs log tree commit diff
path: root/frida_mode/src
diff options
context:
space:
mode:
authorYour Name <you@example.com>2022-07-29 17:23:30 +0100
committerYour Name <you@example.com>2022-07-29 17:23:30 +0100
commitf2b7104cd6c808c2caceb1314a19f4dbcfd087d7 (patch)
tree782205d6e3a91d71692bd24bf08b7cb1917068d9 /frida_mode/src
parentc6af98bc355dbd828e2e6b332ab743a6c2f4ce4c (diff)
downloadafl++-f2b7104cd6c808c2caceb1314a19f4dbcfd087d7.tar.gz
Fix endianness of coverage data on big endian systems
Diffstat (limited to 'frida_mode/src')
-rw-r--r--frida_mode/src/instrument/instrument_coverage.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/frida_mode/src/instrument/instrument_coverage.c b/frida_mode/src/instrument/instrument_coverage.c
index 68842feb..07d4d622 100644
--- a/frida_mode/src/instrument/instrument_coverage.c
+++ b/frida_mode/src/instrument/instrument_coverage.c
@@ -317,6 +317,12 @@ static void coverage_write_events(void *key, void *value, void *user_data) {
 
   };
 
+#if (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
+  evt.offset = __builtin_bswap32(evt.offset);
+  evt.length = __builtin_bswap16(evt.length);
+  evt.module = __builtin_bswap16(evt.module);
+#endif
+
   coverage_write(fd, &evt, sizeof(coverage_event_t));
 
 }