Module Overflow
Provides predicates for reasoning about when the value of an expression is
guarded by an operation such as <
, which confines its range.
Import path
import semmle.code.cpp.security.Overflow
Imports
Dominance | Provides dominance predicates for control-flow nodes. |
Guards | Provides classes and predicates for reasoning about guards and the control flow elements controlled by those guards. |
RangeAnalysisUtils | |
SimpleRangeAnalysis | Simple range analysis library. Range analysis is usually done as an abstract interpretation over the lattice of range values. (A range is a pair, containing a lower and upper bound for the value.) The problem with this approach is that the lattice is very tall, which means it can take an extremely large number of iterations to find the least fixed point. This example illustrates the problem: |
cpp | Provides classes and predicates for working with C/C++ code. |
Predicates
guardedAbs | Holds if the value of |
guardedGreater | Holds if the value of |
guardedLesser | Holds if the value of |
missingGuardAgainstOverflow | Holds if |
missingGuardAgainstUnderflow | Holds if |
varUse | Gets a use of a given variable |