diff options
author | van Hauser <vh@thc.org> | 2020-05-29 16:27:01 +0200 |
---|---|---|
committer | van Hauser <vh@thc.org> | 2020-05-29 16:27:01 +0200 |
commit | 2ce243bc6eee4b9d5830bf04369881cb8ee7f93b (patch) | |
tree | c2a578eb029f2c9076c2a6a2534b5d50d00b21e5 | |
parent | 255594ba3a520ecb555e5c6ef4493f2508c63706 (diff) | |
download | afl++-2ce243bc6eee4b9d5830bf04369881cb8ee7f93b.tar.gz |
whitelist wildcard for LTO
-rw-r--r-- | docs/Changelog.md | 1 | ||||
-rw-r--r-- | llvm_mode/afl-llvm-lto-whitelist.so.cc | 6 |
2 files changed, 4 insertions, 3 deletions
diff --git a/docs/Changelog.md b/docs/Changelog.md index e7ba208c..f11ad01a 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -24,6 +24,7 @@ sending a mail to <afl-users+subscribe@googlegroups.com>. feature is used. - lowered minimum required llvm version to 3.4 (except LLVMInsTrim, which needs 3.8.0) + - WHITELIST feature now supports wildcards (thanks to sirmc) - small change to cmplog to make it work with current llvm 11-dev - added AFL_LLVM_LAF_ALL, sets all laf-intel settings - LTO whitelist functionality rewritten, now main, _init etc functions diff --git a/llvm_mode/afl-llvm-lto-whitelist.so.cc b/llvm_mode/afl-llvm-lto-whitelist.so.cc index 8856ce21..33d40da8 100644 --- a/llvm_mode/afl-llvm-lto-whitelist.so.cc +++ b/llvm_mode/afl-llvm-lto-whitelist.so.cc @@ -36,6 +36,7 @@ #include <string> #include <fstream> #include <sys/time.h> +#include <fnmatch.h> #include "llvm/IR/DebugInfo.h" #include "llvm/IR/BasicBlock.h" @@ -175,9 +176,8 @@ bool AFLwhitelist::runOnModule(Module &M) { * 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(), 0) == + 0) { instrumentFunction = true; break; |