about summary refs log tree commit diff
path: root/src/afl-analyze.c
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2021-02-15 15:20:06 +0100
committerGitHub <noreply@github.com>2021-02-15 15:20:06 +0100
commitd999725de217a0adf4f936954c418ad8c8c3da2a (patch)
treea562435e463b9f9d10b8339992d85052f558e4d6 /src/afl-analyze.c
parent91f2f057e4eacab4cd3a1a11cde157e3a31470d0 (diff)
parent145c673a80878d92013882eda6ef56e6948c397b (diff)
downloadafl++-d999725de217a0adf4f936954c418ad8c8c3da2a.tar.gz
Merge pull request #737 from AFLplusplus/dev
push to stable
Diffstat (limited to 'src/afl-analyze.c')
-rw-r--r--src/afl-analyze.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/afl-analyze.c b/src/afl-analyze.c
index 0af489fe..20aef2da 100644
--- a/src/afl-analyze.c
+++ b/src/afl-analyze.c
@@ -1078,6 +1078,31 @@ int main(int argc, char **argv_orig, char **envp) {
 
   if (optind == argc || !in_file) { usage(argv[0]); }
 
+  if (qemu_mode && getenv("AFL_USE_QASAN")) {
+
+    u8 *preload = getenv("AFL_PRELOAD");
+    u8 *libqasan = get_libqasan_path(argv_orig[0]);
+
+    if (!preload) {
+
+      setenv("AFL_PRELOAD", libqasan, 0);
+
+    } else {
+
+      u8 *result = ck_alloc(strlen(libqasan) + strlen(preload) + 2);
+      strcpy(result, libqasan);
+      strcat(result, " ");
+      strcat(result, preload);
+
+      setenv("AFL_PRELOAD", result, 1);
+      ck_free(result);
+
+    }
+
+    ck_free(libqasan);
+
+  }
+
   map_size = get_map_size();
 
   use_hex_offsets = !!get_afl_env("AFL_ANALYZE_HEX");