diff options
| author | van Hauser <vh@thc.org> | 2021-11-07 14:09:09 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-07 14:09:09 +0100 |
| commit | fb443eaf2372ccd1825699c978fd0d662155fb9e (patch) | |
| tree | ff019fc0b0704c16d68655d0f3864ec4cda49d30 /src/afl-forkserver.c | |
| parent | 5b06413a5f109f310a62e36111a18d7325b246c3 (diff) | |
| parent | 2ddbaa439ca78b0ae8cc6691d9657f5783b2d5e8 (diff) | |
| download | afl++-fb443eaf2372ccd1825699c978fd0d662155fb9e.tar.gz | |
Merge pull request #1141 from AFLplusplus/afl4
cmplog enhancement variant
Diffstat (limited to 'src/afl-forkserver.c')
| -rw-r--r-- | src/afl-forkserver.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/afl-forkserver.c b/src/afl-forkserver.c index 44b6c6f9..6320a26b 100644 --- a/src/afl-forkserver.c +++ b/src/afl-forkserver.c @@ -342,6 +342,16 @@ static void report_error_and_exit(int error) { "the fuzzing target reports that the mmap() call to the shared " "memory failed."); break; + case FS_ERROR_OLD_CMPLOG: + FATAL( + "the -c cmplog target was instrumented with an too old afl++ " + "version, you need to recompile it."); + break; + case FS_ERROR_OLD_CMPLOG_QEMU: + FATAL( + "The AFL++ QEMU/FRIDA loaders are from an older version, for -c you " + "need to recompile it.\n"); + break; default: FATAL("unknown error code %d from fuzzing target!", error); @@ -663,6 +673,20 @@ void afl_fsrv_start(afl_forkserver_t *fsrv, char **argv, if ((status & FS_OPT_OLD_AFLPP_WORKAROUND) == FS_OPT_OLD_AFLPP_WORKAROUND) status = (status & 0xf0ffffff); + if ((status & FS_OPT_NEWCMPLOG) == 0 && fsrv->cmplog_binary) { + + if (fsrv->qemu_mode || fsrv->frida_mode) { + + report_error_and_exit(FS_ERROR_OLD_CMPLOG_QEMU); + + } else { + + report_error_and_exit(FS_ERROR_OLD_CMPLOG); + + } + + } + if ((status & FS_OPT_SNAPSHOT) == FS_OPT_SNAPSHOT) { fsrv->snapshot = 1; |
