diff options
author | van Hauser <vh@thc.org> | 2019-12-24 20:56:10 +0100 |
---|---|---|
committer | van Hauser <vh@thc.org> | 2019-12-24 20:56:10 +0100 |
commit | 67b6298895e8db0cc91c3bbd0bc29c48f8572c2e (patch) | |
tree | d3a398366b212ddfdac35b332c844c14dd3ba57a /src/afl-fuzz.c | |
parent | 3122790295489dee77ffc9993561807fe09be3b8 (diff) | |
download | afl++-67b6298895e8db0cc91c3bbd0bc29c48f8572c2e.tar.gz |
qemu ld_preload support and added socket_fuzzing ld_preload library
Diffstat (limited to 'src/afl-fuzz.c')
-rw-r--r-- | src/afl-fuzz.c | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c index 3a5b0b4e..54fdcc25 100644 --- a/src/afl-fuzz.c +++ b/src/afl-fuzz.c @@ -705,10 +705,37 @@ int main(int argc, char** argv) { if (dumb_mode == 2 && no_forkserver) FATAL("AFL_DUMB_FORKSRV and AFL_NO_FORKSRV are mutually exclusive"); + if (getenv("LD_PRELOAD")) + WARNF( + "LD_PRELOAD is set, are you sure that is want to you want to do " + "instead of using AFL_PRELOAD?"); + if (getenv("AFL_PRELOAD")) { - setenv("LD_PRELOAD", getenv("AFL_PRELOAD"), 1); - setenv("DYLD_INSERT_LIBRARIES", getenv("AFL_PRELOAD"), 1); + if (qemu_mode) { + + char* qemu_preload = getenv("QEMU_SET_ENV"); + char buf[4096]; + + if (qemu_preload) { + + snprintf(buf, sizeof(buf), "%s,LD_PRELOAD=%s", qemu_preload, + getenv("AFL_PRELOAD")); + + } else { + + snprintf(buf, sizeof(buf), "LD_PRELOAD=%s", getenv("AFL_PRELOAD")); + + } + + setenv("QEMU_SET_ENV", buf, 1); + + } else { + + setenv("LD_PRELOAD", getenv("AFL_PRELOAD"), 1); + setenv("DYLD_INSERT_LIBRARIES", getenv("AFL_PRELOAD"), 1); + + } } |