ClearBlue
Public Member Functions
SinkMustReachVulnerability Class Reference

#include <Vulnerability.h>

Inheritance diagram for SinkMustReachVulnerability:
Inheritance graph
[legend]
Collaboration diagram for SinkMustReachVulnerability:
Collaboration graph
[legend]

Public Member Functions

 SinkMustReachVulnerability (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
 

Detailed Description

Users should extend this class to implement a SinkMustReach vulnerability See Vulnerability::VulnerabilityCategoryType for more information.


The documentation for this class was generated from the following file: