mirror of
https://github.com/github/codeql.git
synced 2025-12-22 03:36:30 +01:00
Merge pull request #10744 from hvitved/dataflow/has-flow-to-no-fast-tc
Data flow: Avoid call to `pathSuccPlus` in `Configuration::hasFlowTo(Expr)`
This commit is contained in:
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ abstract class Configuration extends string {
|
|||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
*/
|
*/
|
||||||
predicate hasFlowTo(Node sink) { this.hasFlow(_, sink) }
|
predicate hasFlowTo(Node sink) {
|
||||||
|
sink = any(PathNodeSink n | this = n.getConfiguration()).getNodeEx().asNode()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if data may flow from some source to `sink` for this configuration.
|
* Holds if data may flow from some source to `sink` for this configuration.
|
||||||
|
|||||||
Reference in New Issue
Block a user