diff options
-rw-r--r-- | llvm_mode/afl-llvm-rt.o.c | 6 | ||||
-rwxr-xr-x | qemu_mode/build_qemu_support.sh | 1 | ||||
-rw-r--r-- | qemu_mode/patches/mips-fpu.diff | 15 |
3 files changed, 21 insertions, 1 deletions
diff --git a/llvm_mode/afl-llvm-rt.o.c b/llvm_mode/afl-llvm-rt.o.c index 88abcbe0..fcacc675 100644 --- a/llvm_mode/afl-llvm-rt.o.c +++ b/llvm_mode/afl-llvm-rt.o.c @@ -876,9 +876,13 @@ void __sanitizer_cov_trace_pc_guard(uint32_t *guard) { if (bt_size > 0) { char **bt_syms = backtrace_symbols(bt, bt_size); - if (bt_syms) + if (bt_syms) { + fprintf(stderr, "DEBUG: edge=%u caller=%s\n", unstable[idx], bt_syms[0]); + free(bt_syms); + + } } diff --git a/qemu_mode/build_qemu_support.sh b/qemu_mode/build_qemu_support.sh index a7bfe20d..30ac158f 100755 --- a/qemu_mode/build_qemu_support.sh +++ b/qemu_mode/build_qemu_support.sh @@ -176,6 +176,7 @@ echo Building for CPU target $CPU_TARGET echo "[*] Applying patches..." patch -p1 <../patches/elfload.diff || exit 1 +patch -p1 <../patches/mips-fpu.diff || exit 1 patch -p1 <../patches/bsd-elfload.diff || exit 1 patch -p1 <../patches/cpu-exec.diff || exit 1 patch -p1 <../patches/syscall.diff || exit 1 diff --git a/qemu_mode/patches/mips-fpu.diff b/qemu_mode/patches/mips-fpu.diff new file mode 100644 index 00000000..646d167e --- /dev/null +++ b/qemu_mode/patches/mips-fpu.diff @@ -0,0 +1,15 @@ +--- a/linux-user/elfload.c 2020-07-13 20:10:37.776374566 -0700 ++++ b/linux-user/elfload.c 2020-07-13 20:11:51.794957015 -0700 +@@ -2667,6 +2667,11 @@ + char *elf_interpreter = NULL; + char *scratch; + ++ memset(&interp_info, 0, sizeof(interp_info)); ++#ifdef TARGET_MIPS ++ interp_info.fp_abi = MIPS_ABI_FP_UNKNOWN; ++#endif ++ + info->start_mmap = (abi_ulong)ELF_START_MMAP; + + load_elf_image(bprm->filename, bprm->fd, info, + |