ClearBlue
Public Member Functions
TaintStyleVulnerability Class Reference

#include <Vulnerability.h>

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

Public Member Functions

 TaintStyleVulnerability (const char *Name, const BugDescription::BugImportance importance, const BugDescription::BugClassification classification, const char *Desc)
 
virtual PSAReportDecoratorDefault * allocNewDecorator () override
 
- 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 void destroyDecorator (PSAReportDecoratorDefault *decorator)
 
virtual void getAnalysisUsage (AnalysisUsage &AU)
 
virtual void initializeAnalysis (Pass *P)
 
- Public Member Functions inherited from TaintExtras
virtual bool isSinkFunction (const SymbolicExprGraph *G, const SEGArgumentNode *Arg) const =0
 
virtual void transfer (const SEGSiteBase *Site, const SEGNodeBase *Arg, std::vector< const SEGNodeBase * > &TransferDsts)
 

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 taint style vulnerability


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