about summary refs log tree commit diff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/afl-persistent-replay.h (renamed from include/persistent_replay.h)86
-rw-r--r--include/afl-record-compat.h67
-rw-r--r--include/config.h6
3 files changed, 74 insertions, 85 deletions
diff --git a/include/persistent_replay.h b/include/afl-persistent-replay.h
index 58b22fb4..9e60ff9c 100644
--- a/include/persistent_replay.h
+++ b/include/afl-persistent-replay.h
@@ -10,6 +10,10 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 
+#ifndef PATH_MAX
+  #define PATH_MAX 4096
+#endif
+
 static unsigned short int is_replay_record;
 static unsigned int       replay_record;
 static unsigned int       replay_record_cnt;
@@ -23,7 +27,7 @@ static char **record_arg = NULL;
 
 static int select_files(const struct dirent *dirbuf) {
 
-  char fn[4096];
+  char fn[PATH_MAX];
 
   if (dirbuf->d_name[0] == '.') {
 
@@ -123,85 +127,5 @@ __attribute__((constructor)) static void __afl_record_replay_init(
 
 }
 
-/* only used if explictly included for compatibility
-   compiling without afl-cc */
-
-#ifdef AFL_COMPAT
-
-  #ifndef PATH_MAX
-    #define PATH_MAX 4096
-  #endif
-
-  #define FUZZ_BUF_SIZE 1024000
-
-  // extern ssize_t read(int fildes, void *buf, size_t nbyte);
-
-  // extern int __afl_persistent_loop(unsigned int max_cnt);
-  // extern unsigned char fuzz_buf[];
-
-  #ifndef __AFL_HAVE_MANUAL_CONTROL
-    #define __AFL_HAVE_MANUAL_CONTROL
-  #endif
-
-  #define __AFL_FUZZ_TESTCASE_LEN (read(0, fuzz_buf, FUZZ_BUF_SIZE))
-  #define __AFL_FUZZ_TESTCASE_BUF fuzz_buf
-  #define __AFL_FUZZ_INIT() void sync(void);
-  #define __AFL_INIT() sync()
-  #define __AFL_LOOP(x) __afl_persistent_loop(x)
-
-unsigned char fuzz_buf[FUZZ_BUF_SIZE];
-
-int __afl_persistent_loop(unsigned int max_cnt) {
-
-  static unsigned int       cycle_cnt = 1;
-  static unsigned short int inited = 0;
-  char                      tcase[PATH_MAX];
-
-  if (is_replay_record) {
-
-    if (!inited) {
-
-      cycle_cnt = replay_record_cnt;
-      inited = 1;
-
-    }
-
-    snprintf(tcase, PATH_MAX, "%s/%s",
-             replay_record_dir ? replay_record_dir : "./",
-             record_list[replay_record_cnt - cycle_cnt]->d_name);
-
-  #ifdef AFL_PERSISTENT_REPLAY_ARGPARSE
-    if (record_arg) {
-
-      *record_arg = tcase;
-
-    } else
-
-  #endif  // AFL_PERSISTENT_REPLAY_ARGPARSE
-    {
-
-      int fd = open(tcase, O_RDONLY);
-      dup2(fd, 0);
-      close(fd);
-
-    }
-
-  } else {
-
-    if (!inited) {
-
-      cycle_cnt = max_cnt;
-      inited = 1;
-
-    }
-
-  }
-
-  return cycle_cnt--;
-
-}
-
-#endif  // AFL_COMPAT
-
 #endif  // _HAVE_PERSISTENT_REPLAY_H
 
diff --git a/include/afl-record-compat.h b/include/afl-record-compat.h
new file mode 100644
index 00000000..2c79595d
--- /dev/null
+++ b/include/afl-record-compat.h
@@ -0,0 +1,67 @@
+#ifndef _HAVE_AFL_COMPAT_H
+#define _HAVE_AFL_COMPAT_H
+
+#include <afl-persistent-replay.h>
+
+#define FUZZ_BUF_SIZE 1024000
+
+// extern ssize_t read(int fildes, void *buf, size_t nbyte);
+
+// extern int __afl_persistent_loop(unsigned int max_cnt);
+// extern unsigned char fuzz_buf[];
+
+#ifndef __AFL_HAVE_MANUAL_CONTROL
+  #define __AFL_HAVE_MANUAL_CONTROL
+#endif
+
+#define __AFL_FUZZ_TESTCASE_LEN (read(0, fuzz_buf, FUZZ_BUF_SIZE))
+#define __AFL_FUZZ_TESTCASE_BUF fuzz_buf
+#define __AFL_FUZZ_INIT() void sync(void);
+#define __AFL_INIT() sync()
+#define __AFL_LOOP(x) __afl_persistent_loop(x)
+
+unsigned char fuzz_buf[FUZZ_BUF_SIZE];
+
+int __afl_persistent_loop(unsigned int max_cnt) {
+
+  static unsigned int       cycle_cnt = 1;
+  static unsigned short int inited = 0;
+  char                      tcase[PATH_MAX];
+
+  if (is_replay_record) {
+
+    if (!inited) {
+
+      cycle_cnt = replay_record_cnt;
+      inited = 1;
+
+    }
+
+    snprintf(tcase, PATH_MAX, "%s/%s",
+             replay_record_dir ? replay_record_dir : "./",
+             record_list[replay_record_cnt - cycle_cnt]->d_name);
+
+#ifdef AFL_PERSISTENT_REPLAY_ARGPARSE
+    if (record_arg) {
+
+      *record_arg = tcase;
+
+    } else
+
+#endif  // AFL_PERSISTENT_REPLAY_ARGPARSE
+    {
+
+      int fd = open(tcase, O_RDONLY);
+      dup2(fd, 0);
+      close(fd);
+
+    }
+
+  }
+
+  return --cycle_cnt;
+
+}
+
+#endif  // _HAVE_AFL_COMPAT_H
+
diff --git a/include/config.h b/include/config.h
index d44cda9c..a5b6eba1 100644
--- a/include/config.h
+++ b/include/config.h
@@ -83,13 +83,11 @@
    will be kept and written to the crash/ directory as RECORD:... files.
    Note that every crash will be written, not only unique ones! */
 
-#define AFL_PERSISTENT_RECORD
-
-/* Adds support in compiler-rt to replay persistent records */
-#define AFL_PERSISTENT_REPLAY
+// #define AFL_PERSISTENT_RECORD
 
 /* Adds support in compiler-rt to replay persistent records in @@-style
  * harnesses */
+
 //  #define AFL_PERSISTENT_REPLAY_ARGPARSE
 
 /* console output colors: There are three ways to configure its behavior