aboutsummaryrefslogtreecommitdiff
path: root/instrumentation/SanitizerCoveragePCGUARD.so.cc
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2020-11-16 10:59:09 +0100
committervan Hauser <vh@thc.org>2020-11-16 10:59:09 +0100
commit1cc637a0a05a043a223f69fb9661ecc3d5597d23 (patch)
treeecb8cb4b5cd95599bb5d8b72dd8fdaaf34a0895a /instrumentation/SanitizerCoveragePCGUARD.so.cc
parent7000f2a2cf01a3dbaa1eb180f520bbde4e9b2f5b (diff)
downloadAFLplusplus-1cc637a0a05a043a223f69fb9661ecc3d5597d23.tar.gz
support AFL_LLVM_INSTRUMENT env for our own PCGUARD
Diffstat (limited to 'instrumentation/SanitizerCoveragePCGUARD.so.cc')
-rw-r--r--instrumentation/SanitizerCoveragePCGUARD.so.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/instrumentation/SanitizerCoveragePCGUARD.so.cc b/instrumentation/SanitizerCoveragePCGUARD.so.cc
index b3c55108..e85f9cd3 100644
--- a/instrumentation/SanitizerCoveragePCGUARD.so.cc
+++ b/instrumentation/SanitizerCoveragePCGUARD.so.cc
@@ -544,7 +544,9 @@ bool ModuleSanitizerCoverage::instrumentModule(
be_quiet = 1;
skip_nozero = getenv("AFL_LLVM_SKIP_NEVERZERO");
- // scanForDangerousFunctions(&M);
+
+ initInstrumentList();
+ scanForDangerousFunctions(&M);
if (debug) {
@@ -819,6 +821,8 @@ void ModuleSanitizerCoverage::instrumentFunction(
Function &F, DomTreeCallback DTCallback, PostDomTreeCallback PDTCallback) {
if (F.empty()) return;
+ if (!isInInstrumentList(&F)) return;
+
if (F.getName().find(".module_ctor") != std::string::npos)
return; // Should not instrument sanitizer init functions.
if (F.getName().startswith("__sanitizer_"))
@@ -1315,6 +1319,7 @@ std::string ModuleSanitizerCoverage::getSectionEnd(
}
char ModuleSanitizerCoverageLegacyPass::ID = 0;
+
INITIALIZE_PASS_BEGIN(ModuleSanitizerCoverageLegacyPass, "sancov",
"Pass for instrumenting coverage on functions", false,
false)
@@ -1323,6 +1328,7 @@ INITIALIZE_PASS_DEPENDENCY(PostDominatorTreeWrapperPass)
INITIALIZE_PASS_END(ModuleSanitizerCoverageLegacyPass, "sancov",
"Pass for instrumenting coverage on functions", false,
false)
+
ModulePass *llvm::createModuleSanitizerCoverageLegacyPassPass(
const SanitizerCoverageOptions &Options,
const std::vector<std::string> &AllowlistFiles,