about summary refs log tree commit diff
path: root/utils/aflpp_driver
diff options
context:
space:
mode:
Diffstat (limited to 'utils/aflpp_driver')
-rw-r--r--utils/aflpp_driver/aflpp_driver.c10
-rw-r--r--utils/aflpp_driver/aflpp_qemu_driver_hook.c2
2 files changed, 11 insertions, 1 deletions
diff --git a/utils/aflpp_driver/aflpp_driver.c b/utils/aflpp_driver/aflpp_driver.c
index 9ffb2383..6e992266 100644
--- a/utils/aflpp_driver/aflpp_driver.c
+++ b/utils/aflpp_driver/aflpp_driver.c
@@ -80,6 +80,7 @@ extern unsigned int   __afl_map_size;
 /*__attribute__((weak))*/ int LLVMFuzzerTestOneInput(const uint8_t *Data,
                                                      size_t         Size);
 __attribute__((weak)) int     LLVMFuzzerInitialize(int *argc, char ***argv);
+__attribute__((weak)) void    LLVMFuzzerCleanup(void);
 __attribute__((weak)) int     LLVMFuzzerRunDriver(
         int *argc, char ***argv, int (*callback)(const uint8_t *data, size_t size));
 
@@ -338,6 +339,7 @@ __attribute__((weak)) int LLVMFuzzerRunDriver(
   output_file = stderr;
   maybe_duplicate_stderr();
   maybe_close_fd_mask();
+
   if (LLVMFuzzerInitialize) {
 
     fprintf(stderr, "Running LLVMFuzzerInitialize ...\n");
@@ -441,6 +443,14 @@ __attribute__((weak)) int LLVMFuzzerRunDriver(
 
   }
 
+  if (LLVMFuzzerCleanup) {
+
+    fprintf(stderr, "Running LLVMFuzzerCleanup ...\n");
+    LLVMFuzzerCleanup();
+    fprintf(stderr, "Exiting ...\n");
+
+  }
+
   return 0;
 
 }
diff --git a/utils/aflpp_driver/aflpp_qemu_driver_hook.c b/utils/aflpp_driver/aflpp_qemu_driver_hook.c
index 2979fadc..d75de539 100644
--- a/utils/aflpp_driver/aflpp_qemu_driver_hook.c
+++ b/utils/aflpp_driver/aflpp_qemu_driver_hook.c
@@ -4,7 +4,7 @@
 #include <string.h>
 
 #define g2h(x) ((void *)((unsigned long)(x) + guest_base))
-#define h2g(x) ((uint64_t)(x)-guest_base)
+#define h2g(x) ((uint64_t)(x) - guest_base)
 
 void afl_persistent_hook(struct x86_64_regs *regs, uint64_t guest_base,
                          uint8_t *input_buf, uint32_t input_buf_len) {