aboutsummaryrefslogtreecommitdiff
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