about summary refs log tree commit diff
path: root/llvm_mode
diff options
context:
space:
mode:
authorSebastian Ă–sterlund <s.osterlund@vu.nl>2020-05-29 10:51:34 +0200
committerSebastian Ă–sterlund <s.osterlund@vu.nl>2020-05-29 10:51:34 +0200
commit0cedc8014bed28e0f2ae041373d1b57271d0e6f8 (patch)
treeec982d29c5874948726d370c2096fdc70c219521 /llvm_mode
parent5e4cd05e04c68e5110246cad00ea1dd9ece45355 (diff)
downloadafl++-0cedc8014bed28e0f2ae041373d1b57271d0e6f8.tar.gz
Support filename pattern matching in whitelist
Allow the whitelist specified by AFL_LLVM_WHITELIST contain entries with
UNIX shell-style wildcard pattern matching.
Diffstat (limited to 'llvm_mode')
-rw-r--r--llvm_mode/afl-llvm-common.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm_mode/afl-llvm-common.cc b/llvm_mode/afl-llvm-common.cc
index 35eabbf0..e97423a0 100644
--- a/llvm_mode/afl-llvm-common.cc
+++ b/llvm_mode/afl-llvm-common.cc
@@ -7,6 +7,7 @@
 #include <stdlib.h>
 #include <unistd.h>
 #include <sys/time.h>
+#include <fnmatch.h>
 
 #include <list>
 #include <string>
@@ -155,9 +156,8 @@ bool isInWhitelist(llvm::Function *F) {
          * specified in the list. */
         if (instFilename.str().length() >= it->length()) {
 
-          if (instFilename.str().compare(
-                  instFilename.str().length() - it->length(), it->length(),
-                  *it) == 0) {
+          if (fnmatch((*it).c_str(),
+                      instFilename.str().c_str(), FNM_PATHNAME) == 0) {
 
             return true;