aboutsummaryrefslogtreecommitdiff
path: root/src/afl-analyze.c
diff options
context:
space:
mode:
authorAndrea Fioraldi <andreafioraldi@gmail.com>2021-01-29 18:52:45 +0100
committerGitHub <noreply@github.com>2021-01-29 18:52:45 +0100
commitb06e3d9f2b4a4cff5d5ba90b89ea3edaaca3ca12 (patch)
treee644d51ded5c1b8b2d65635087129ada735d9ea0 /src/afl-analyze.c
parentdebd832f36b142e1b0b1bab8a6966848a51878f8 (diff)
parentaaec45b6528e41a217de95ca3db1173fb2539672 (diff)
downloadafl++-b06e3d9f2b4a4cff5d5ba90b89ea3edaaca3ca12.tar.gz
Merge pull request #715 from AFLplusplus/qasan
Qasan
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..28598ba0 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");