ClearBlue
Public Member Functions
SinkMustNotReachVulnerability Class Reference

#include <Vulnerability.h>

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

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 bool finalCheck (const VulnerabilityTraceBuilder &TraceHistory)
 
virtual void ConstantCheck (const SymbolicExprGraph *SEG, std::list< shared_ptr< VulnerabilityTrace >> &AllTraces)
 
virtual bool isFlowInsensitive ()
 
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 SinkMustNotReach vulnerability See Vulnerability::VulnerabilityCategoryType for more information.


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