C++: respond to easy comments on ProducFlow.qll

This commit is contained in:
Robert Marsh
2022-08-10 10:11:14 -04:00
parent 0ebd7d0de5
commit 66ce9158a3

View File

@@ -24,12 +24,13 @@ module ProductFlow {
DataFlow::PathNode source1, DataFlow2::PathNode source2, DataFlow::PathNode sink1, DataFlow::PathNode source1, DataFlow2::PathNode source2, DataFlow::PathNode sink1,
DataFlow2::PathNode sink2 DataFlow2::PathNode sink2
) { ) {
isSourcePair(source1.getNode(), source2.getNode()) and
isSinkPair(sink1.getNode(), sink2.getNode()) and isSinkPair(sink1.getNode(), sink2.getNode()) and
reachablePair2(this, source1, source2, sink1, sink2) reachablePair2(this, source1, source2, sink1, sink2)
} }
} }
private import Internal
module Internal {
class Conf1 extends DataFlow::Configuration { class Conf1 extends DataFlow::Configuration {
Conf1() { this = "Conf1" } Conf1() { this = "Conf1" }
@@ -46,15 +47,19 @@ module ProductFlow {
Conf2() { this = "Conf2" } Conf2() { this = "Conf2" }
override predicate isSource(DataFlow::Node source) { override predicate isSource(DataFlow::Node source) {
exists(Configuration conf | conf.isSourcePair(_, source)) exists(Configuration conf, DataFlow::Node source1 |
conf.isSourcePair(source1, source) and
any(Conf1 c).hasFlow(source1, _)
)
} }
override predicate isSink(DataFlow::Node sink) { override predicate isSink(DataFlow::Node sink) {
exists(Configuration conf | conf.isSinkPair(_, sink)) exists(Configuration conf | conf.isSinkPair(_, sink))
} }
} }
}
predicate reachablePair1( private predicate reachablePair1(
Configuration conf, DataFlow::PathNode source1, DataFlow2::PathNode source2, Configuration conf, DataFlow::PathNode source1, DataFlow2::PathNode source2,
DataFlow::PathNode node1, DataFlow2::PathNode node2 DataFlow::PathNode node1, DataFlow2::PathNode node2
) { ) {
@@ -67,7 +72,7 @@ module ProductFlow {
) )
} }
predicate reachablePair2( private predicate reachablePair2(
Configuration conf, DataFlow::PathNode source1, DataFlow2::PathNode source2, Configuration conf, DataFlow::PathNode source1, DataFlow2::PathNode source2,
DataFlow::PathNode node1, DataFlow2::PathNode node2 DataFlow::PathNode node1, DataFlow2::PathNode node2
) { ) {
@@ -80,7 +85,7 @@ module ProductFlow {
) )
} }
predicate interprocStep( private predicate interprocStep(
Configuration conf, DataFlow::PathNode source1, DataFlow2::PathNode source2, Configuration conf, DataFlow::PathNode source1, DataFlow2::PathNode source2,
DataFlow::PathNode node1, DataFlow2::PathNode node2 DataFlow::PathNode node1, DataFlow2::PathNode node2
) { ) {
@@ -96,7 +101,7 @@ module ProductFlow {
) )
} }
predicate reachablePair( private predicate reachablePair(
Configuration conf, DataFlow::PathNode source1, DataFlow2::PathNode source2, Configuration conf, DataFlow::PathNode source1, DataFlow2::PathNode source2,
DataFlow::PathNode node1, DataFlow2::PathNode node2 DataFlow::PathNode node1, DataFlow2::PathNode node2
) { ) {