ClearBlue
|
#include <Vulnerability.h>
Public Member Functions | |
SinkMustNotReachVulnerability (const char *Name, const BugDescription::BugImportance Importance, const BugDescription::BugClassification Classification, const char *Desc) | |
Public Member Functions inherited from Vulnerability | |
virtual void | setSources (const SymbolicExprGraph *SEG, std::vector< ValueSitePairType > &Sources)=0 |
virtual void | setPrerequisites (SymbolicExprGraphSolver *Solver, const SEGSiteBase *CurrSite, const VulnerabilityTraceBuilder &TraceHistory, SMTExprVec &Prerequisites)=0 |
virtual bool | checkNode (const SEGNodeBase *CurrNode, const VulnerabilityTraceBuilder &TraceHistory) |
virtual SiteType | checkSite (const SEGSiteBase *CurrSite, const VulnerabilityTraceBuilder &TraceHistory)=0 |
virtual bool | checkTrace (std::shared_ptr< VulnerabilityTrace > &Trace) |
VulnerabilityCategoryType | getCategoryType () const |
bool | isParasitical () const |
void | setParasitical (bool B) |
const char * | getDescription () |
Return the description of the vulnerability. | |
BugDescription::BugImportance | getImportance () const |
BugDescription::BugClassification | getClassification () const |
const char * | getName () |
Return the name of the vulnerability. | |
virtual PSAReportDecoratorDefault * | allocNewDecorator () |
virtual void | destroyDecorator (PSAReportDecoratorDefault *decorator) |
virtual void | getAnalysisUsage (AnalysisUsage &AU) |
virtual void | initializeAnalysis (Pass *P) |
Additional Inherited Members | |
Public Types inherited from Vulnerability | |
enum | SiteType { ST_Return = 1 << 0, ST_Call = 1 << 1, ST_Sink = 1 << 2, ST_Others = 1 << 3 } |
enum | VulnerabilityCategoryType { VCT_Begin, VCT_SinkMustReach, VCT_SinkMustNotReach, VCT_Taint, VCT_End } |
typedef std::pair< const SEGOperandNode *, const SEGSiteBase * > | ValueSitePairType |
Users should extend this class to implement a SinkMustNotReach vulnerability See Vulnerability::VulnerabilityCategoryType
for more information.