-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Data flow: Use parameterized module to share code between pruning stages #8301
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
ea8f3ba
to
31e5693
Compare
e1c369c
to
987b8c6
Compare
aa88421
to
e2e4f26
Compare
e2e4f26
to
a7e7cb4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Found 40 vulnerabilities.
* The corresponding paths are generated from the end-points and the graph | ||
* included in the module `PathGraph`. | ||
*/ | ||
predicate hasFlowPath(PathNode source, PathNode sink) { flowsTo(source, sink, _, _, this) } |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
* The corresponding paths are generated from the end-points and the graph | ||
* included in the module `PathGraph`. | ||
*/ | ||
predicate hasFlowPath(PathNode source, PathNode sink) { flowsTo(source, sink, _, _, this) } |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
* | ||
* To use this in a `path-problem` query, import the module `PartialPathGraph`. | ||
*/ | ||
final predicate hasPartialFlow(PartialPathNode source, PartialPathNode node, int dist) { |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
* | ||
* To use this in a `path-problem` query, import the module `PartialPathGraph`. | ||
*/ | ||
final predicate hasPartialFlow(PartialPathNode source, PartialPathNode node, int dist) { |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
* Note that reverse flow has slightly lower precision than the corresponding | ||
* forward flow, as reverse flow disregards type pruning among other features. | ||
*/ | ||
final predicate hasPartialFlowRev(PartialPathNode node, PartialPathNode sink, int dist) { |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
predicate prevStageReadStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); | ||
|
||
predicate prevStageStoreStepCand( | ||
NodeEx node1, ApApprox ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
// TODO: Use separate module once supported for all `prevStage` predicates | ||
bindingset[node, state, config] | ||
predicate prevStageRevFlow( | ||
NodeEx node, FlowState state, boolean toReturn, ApApproxOption returnAp, ApApprox ap, |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
// TODO: Use separate module once supported for all `prevStage` predicates | ||
bindingset[node, state, config] | ||
predicate prevStageRevFlow( | ||
NodeEx node, FlowState state, boolean toReturn, ApApproxOption returnAp, ApApprox ap, |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
|
||
class ApApprox = PrevStage::Ap; | ||
predicate prevStageParameterMayFlowThrough( | ||
ParamNodeEx p, DataFlowCallable c, ApApprox ap, Configuration config |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
predicate prevStageReadStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); | ||
|
||
predicate prevStageStoreStepCand( | ||
NodeEx node1, ApApprox ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Found 55 vulnerabilities.
* The corresponding paths are generated from the end-points and the graph | ||
* included in the module `PathGraph`. | ||
*/ | ||
predicate hasFlowPath(PathNode source, PathNode sink) { flowsTo(source, sink, _, _, this) } |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
* The corresponding paths are generated from the end-points and the graph | ||
* included in the module `PathGraph`. | ||
*/ | ||
predicate hasFlowPath(PathNode source, PathNode sink) { flowsTo(source, sink, _, _, this) } |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
* | ||
* To use this in a `path-problem` query, import the module `PartialPathGraph`. | ||
*/ | ||
final predicate hasPartialFlow(PartialPathNode source, PartialPathNode node, int dist) { |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
* | ||
* To use this in a `path-problem` query, import the module `PartialPathGraph`. | ||
*/ | ||
final predicate hasPartialFlow(PartialPathNode source, PartialPathNode node, int dist) { |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
* Note that reverse flow has slightly lower precision than the corresponding | ||
* forward flow, as reverse flow disregards type pruning among other features. | ||
*/ | ||
final predicate hasPartialFlowRev(PartialPathNode node, PartialPathNode sink, int dist) { |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
* Note that reverse flow has slightly lower precision than the corresponding | ||
* forward flow, as reverse flow disregards type pruning among other features. | ||
*/ | ||
final predicate hasPartialFlowRev(PartialPathNode node, PartialPathNode sink, int dist) { |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
* Note that reverse flow has slightly lower precision than the corresponding | ||
* forward flow, as reverse flow disregards type pruning among other features. | ||
*/ | ||
final predicate hasPartialFlowRev(PartialPathNode node, PartialPathNode sink, int dist) { |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
// TODO: Use separate module once supported for all `prevStage` predicates | ||
bindingset[node, state, config] | ||
predicate prevStageRevFlow( | ||
NodeEx node, FlowState state, boolean toReturn, ApApproxOption returnAp, ApApprox ap, |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
// TODO: Use separate module once supported for all `prevStage` predicates | ||
bindingset[node, state, config] | ||
predicate prevStageRevFlow( | ||
NodeEx node, FlowState state, boolean toReturn, ApApproxOption returnAp, ApApprox ap, |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
|
||
class ApApprox = PrevStage::Ap; | ||
predicate prevStageParameterMayFlowThrough( | ||
ParamNodeEx p, DataFlowCallable c, ApApprox ap, Configuration config |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Found 50 vulnerabilities.
* The corresponding paths are generated from the end-points and the graph | ||
* included in the module `PathGraph`. | ||
*/ | ||
predicate hasFlowPath(PathNode source, PathNode sink) { flowsTo(source, sink, _, _, this) } |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
* The corresponding paths are generated from the end-points and the graph | ||
* included in the module `PathGraph`. | ||
*/ | ||
predicate hasFlowPath(PathNode source, PathNode sink) { flowsTo(source, sink, _, _, this) } |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
* | ||
* To use this in a `path-problem` query, import the module `PartialPathGraph`. | ||
*/ | ||
final predicate hasPartialFlow(PartialPathNode source, PartialPathNode node, int dist) { |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
* | ||
* To use this in a `path-problem` query, import the module `PartialPathGraph`. | ||
*/ | ||
final predicate hasPartialFlow(PartialPathNode source, PartialPathNode node, int dist) { |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
* Note that reverse flow has slightly lower precision than the corresponding | ||
* forward flow, as reverse flow disregards type pruning among other features. | ||
*/ | ||
final predicate hasPartialFlowRev(PartialPathNode node, PartialPathNode sink, int dist) { |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
* Note that reverse flow has slightly lower precision than the corresponding | ||
* forward flow, as reverse flow disregards type pruning among other features. | ||
*/ | ||
final predicate hasPartialFlowRev(PartialPathNode node, PartialPathNode sink, int dist) { |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
// TODO: Use separate module once supported for all `prevStage` predicates | ||
bindingset[node, state, config] | ||
predicate prevStageRevFlow( | ||
NodeEx node, FlowState state, boolean toReturn, ApApproxOption returnAp, ApApprox ap, |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
// TODO: Use separate module once supported for all `prevStage` predicates | ||
bindingset[node, state, config] | ||
predicate prevStageRevFlow( | ||
NodeEx node, FlowState state, boolean toReturn, ApApproxOption returnAp, ApApprox ap, |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
|
||
class ApApprox = PrevStage::Ap; | ||
predicate prevStageParameterMayFlowThrough( | ||
ParamNodeEx p, DataFlowCallable c, ApApprox ap, Configuration config |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
predicate prevStageReadStepCand(NodeEx n1, Content c, NodeEx n2, Configuration config); | ||
|
||
predicate prevStageStoreStepCand( | ||
NodeEx node1, ApApprox ap1, TypedContent tc, NodeEx node2, DataFlowType contentType, |
Check warning
Code scanning / CodeQL
Consistency predicate that should be empty
Superseded by #9823. |
No description provided.