about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2023-12-07 16:15:18 +0100
committervanhauser-thc <vh@thc.org>2023-12-07 16:15:18 +0100
commitbb1d4a24917fd95f5389ed6f406c99811e0ed6eb (patch)
treeb2b8688112590cfb023c02efeec5f92c2a92296e
parent5b655e0d59973099c8ecaea6f105d62c24fddafd (diff)
downloadafl++-bb1d4a24917fd95f5389ed6f406c99811e0ed6eb.tar.gz
afl-cc fixes
-rw-r--r--src/afl-cc.c36
1 files changed, 23 insertions, 13 deletions
diff --git a/src/afl-cc.c b/src/afl-cc.c
index ceea61f2..6242ece0 100644
--- a/src/afl-cc.c
+++ b/src/afl-cc.c
@@ -395,12 +395,16 @@ static void process_params(u32 argc, char **argv) {
 
   }
 
+  // reset
+  have_instr_list = 0;
+  have_c = 0;
+
   if (lto_mode && argc > 1) {
 
     u32 idx;
     for (idx = 1; idx < argc; idx++) {
 
-      if (!strncasecmp(argv[idx], "-fpic", 5)) have_pic = 1;
+      if (!strncasecmp(argv[idx], "-fpic", 5)) { have_pic = 1; }
 
     }
 
@@ -689,6 +693,18 @@ static void edit_params(u32 argc, char **argv, char **envp) {
 
   cc_params = ck_alloc(MAX_PARAMS_NUM * sizeof(u8 *));
 
+  for (u32 c = 1; c < argc; ++c) {
+
+    if (!strcmp(argv[c], "-c")) have_c = 1;
+    if (!strncmp(argv[c], "-fsanitize-coverage-", 20) &&
+        strstr(argv[c], "list=")) {
+
+      have_instr_list = 1;
+
+    }
+
+  }
+
   if (lto_mode) {
 
     if (lto_flag[0] != '-')
@@ -1125,24 +1141,18 @@ static void edit_params(u32 argc, char **argv, char **envp) {
 
     // cc_params[cc_par_cnt++] = "-Qunused-arguments";
 
-    if (lto_mode && argc > 1) {
-
-      u32 idx;
-      for (idx = 1; idx < argc; idx++) {
-
-        if (!strncasecmp(argv[idx], "-fpic", 5)) have_pic = 1;
-
-      }
-
-    }
-
   }
 
   /* Inspect the command line parameters. */
 
   process_params(argc, argv);
 
-  if (!have_pic) { cc_params[cc_par_cnt++] = "-fPIC"; }
+  if (!have_pic) {
+
+    cc_params[cc_par_cnt++] = "-fPIC";
+    have_pic = 1;
+
+  }
 
   if (compiler_mode != GCC_PLUGIN && compiler_mode != GCC &&
       !getenv("AFL_LLVM_NO_RPATH")) {