about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2020-06-29 12:21:14 +0200
committervan Hauser <vh@thc.org>2020-06-29 12:21:14 +0200
commit07648f75ea5ef8f03a92db0c7566da8c229dc27b (patch)
tree5996de2ac10cb0a4effb295c2f667f54f31e57aa
parent3a0c91b86205bfebb8ec7e62a2e7b0bfcec2e407 (diff)
downloadafl++-07648f75ea5ef8f03a92db0c7566da8c229dc27b.tar.gz
workaround for recent afl++ versions
-rw-r--r--include/types.h1
-rw-r--r--src/afl-forkserver.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/include/types.h b/include/types.h
index 77b7ae74..39f599a0 100644
--- a/include/types.h
+++ b/include/types.h
@@ -48,6 +48,7 @@ typedef uint32_t u32;
 #define FS_OPT_SNAPSHOT 0x20000000
 #define FS_OPT_AUTODICT 0x10000000
 #define FS_OPT_SHDMEM_FUZZ 0x01000000
+#define FS_OPT_OLD_AFLPP_WORKAROUND 0x0f000000
 // FS_OPT_MAX_MAPSIZE is 8388608 = 0x800000 = 2^23 = 1 << 22
 #define FS_OPT_MAX_MAPSIZE ((0x00fffffe >> 1) + 1)
 #define FS_OPT_GET_MAPSIZE(x) (((x & 0x00fffffe) >> 1) + 1)
diff --git a/src/afl-forkserver.c b/src/afl-forkserver.c
index c5709b33..419ce28e 100644
--- a/src/afl-forkserver.c
+++ b/src/afl-forkserver.c
@@ -525,6 +525,10 @@ void afl_fsrv_start(afl_forkserver_t *fsrv, char **argv,
 
     if ((status & FS_OPT_ENABLED) == FS_OPT_ENABLED) {
 
+      // workaround for recent afl++ versions
+      if ((status & FS_OPT_OLD_AFLPP_WORKAROUND) == FS_OPT_OLD_AFLPP_WORKAROUND)
+        status = (status & 0xf0ffffff);
+
       if ((status & FS_OPT_SNAPSHOT) == FS_OPT_SNAPSHOT) {
 
         fsrv->snapshot = 1;