From 360f692a5f02048cb6623d479ac9c907dc45f8a2 Mon Sep 17 00:00:00 2001 From: Fabian Schiebel Date: Mon, 19 Jun 2023 09:23:59 +0200 Subject: [PATCH] Skip debug instructions in TaintConfig initial seeds --- lib/PhasarLLVM/TaintConfig/CMakeLists.txt | 2 ++ lib/PhasarLLVM/TaintConfig/LLVMTaintConfig.cpp | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/PhasarLLVM/TaintConfig/CMakeLists.txt b/lib/PhasarLLVM/TaintConfig/CMakeLists.txt index f795ea8372..81d9ad6a87 100644 --- a/lib/PhasarLLVM/TaintConfig/CMakeLists.txt +++ b/lib/PhasarLLVM/TaintConfig/CMakeLists.txt @@ -5,6 +5,8 @@ set(PHASAR_LINK_LIBS phasar_db phasar_llvm_db phasar_llvm_utils + phasar_controlflow + phasar_llvm_controlflow ) set(LLVM_LINK_COMPONENTS diff --git a/lib/PhasarLLVM/TaintConfig/LLVMTaintConfig.cpp b/lib/PhasarLLVM/TaintConfig/LLVMTaintConfig.cpp index b9440815d4..06958f7ed0 100644 --- a/lib/PhasarLLVM/TaintConfig/LLVMTaintConfig.cpp +++ b/lib/PhasarLLVM/TaintConfig/LLVMTaintConfig.cpp @@ -9,6 +9,7 @@ #include "phasar/PhasarLLVM/TaintConfig/LLVMTaintConfig.h" +#include "phasar/PhasarLLVM/ControlFlow/LLVMBasedCFG.h" #include "phasar/PhasarLLVM/DB/LLVMProjectIRDB.h" #include "phasar/PhasarLLVM/TaintConfig/TaintConfigBase.h" #include "phasar/PhasarLLVM/Utils/Annotation.h" @@ -481,8 +482,10 @@ LLVMTaintConfig::makeInitialSeedsImpl() const { InitialSeeds[Inst].insert(Inst); } else if (const auto *Arg = llvm::dyn_cast(SourceValue); Arg && !Arg->getParent()->isDeclaration()) { - const auto *FunFirstInst = &Arg->getParent()->getEntryBlock().front(); - InitialSeeds[FunFirstInst].insert(Arg); + LLVMBasedCFG C; + for (const auto *SP : C.getStartPointsOf(Arg->getParent())) { + InitialSeeds[SP].insert(Arg); + } } } return InitialSeeds;