about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2020-07-31 20:20:30 +0200
committervan Hauser <vh@thc.org>2020-07-31 20:20:30 +0200
commit593940c39a3838b072863b7093ed31f92846cfcb (patch)
treedc16b1d7d595c63c8e206b5665191acd0113b5b0
parent8ea19d4266dab5c6c88336119be40529ed148c8f (diff)
downloadafl++-593940c39a3838b072863b7093ed31f92846cfcb.tar.gz
refer to llvm 12 for partial instrumentation for PCGUARD
-rw-r--r--docs/FAQ.md3
-rw-r--r--llvm_mode/README.instrument_file.md2
-rw-r--r--llvm_mode/afl-clang-fast.c5
3 files changed, 7 insertions, 3 deletions
diff --git a/docs/FAQ.md b/docs/FAQ.md
index b09a16ae..ee221d02 100644
--- a/docs/FAQ.md
+++ b/docs/FAQ.md
@@ -117,7 +117,8 @@ afl-clang-fast PCGUARD and afl-clang-lto LTO instrumentation!
      remove from instrumentation.
 
      Simply follow this document on how to do this: [llvm_mode/README.instrument_file.md](llvm_mode/README.instrument_file.md)
-     If PCGUARD is used, then you need to follow this guide: [http://clang.llvm.org/docs/SanitizerCoverage.html#partially-disabling-instrumentation](http://clang.llvm.org/docs/SanitizerCoverage.html#partially-disabling-instrumentation)
+     If PCGUARD is used, then you need to follow this guide (needs llvm 12+!):
+     [http://clang.llvm.org/docs/SanitizerCoverage.html#partially-disabling-instrumentation](http://clang.llvm.org/docs/SanitizerCoverage.html#partially-disabling-instrumentation)
 
   4. Fourth step: recompile the target
 
diff --git a/llvm_mode/README.instrument_file.md b/llvm_mode/README.instrument_file.md
index 29c40eec..46e45ba2 100644
--- a/llvm_mode/README.instrument_file.md
+++ b/llvm_mode/README.instrument_file.md
@@ -18,6 +18,8 @@ For this purpose, I have added a "partial instrumentation" support to the LLVM
 mode of AFLFuzz that allows you to specify on a source file level which files
 should be compiled with or without instrumentation.
 
+Note: When using PCGUARD mode - and have llvm 12+ - you can use this instead:
+https://clang.llvm.org/docs/SanitizerCoverage.html#partially-disabling-instrumentation
 
 ## 2) Building the LLVM module
 
diff --git a/llvm_mode/afl-clang-fast.c b/llvm_mode/afl-clang-fast.c
index a2550d2c..8e3ca90c 100644
--- a/llvm_mode/afl-clang-fast.c
+++ b/llvm_mode/afl-clang-fast.c
@@ -776,7 +776,7 @@ int main(int argc, char **argv, char **envp) {
           "switching to classic instrumentation because "
           "AFL_LLVM_INSTRUMENT_FILE does not work with PCGUARD. Use "
           "-fsanitize-coverage-allowlist=allowlist.txt if you want to use "
-          "PCGUARD. See "
+          "PCGUARD. Requires llvm 12+. See "
           "https://clang.llvm.org/docs/"
           "SanitizerCoverage.html#partially-disabling-instrumentation");
 
@@ -832,7 +832,8 @@ int main(int argc, char **argv, char **envp) {
     FATAL(
         "Instrumentation type PCGUARD does not support "
         "AFL_LLVM_INSTRUMENT_FILE! Use "
-        "-fsanitize-coverage-allowlist=allowlist.txt instead, see "
+        "-fsanitize-coverage-allowlist=allowlist.txt instead (requires llvm "
+        "12+), see "
         "https://clang.llvm.org/docs/"
         "SanitizerCoverage.html#partially-disabling-instrumentation");