Skip to content

Commit 88719b8

Browse files
committed
update localFlow() to use fastTC
1 parent cc1b870 commit 88719b8

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

python/ql/lib/semmle/python/dataflow/new/internal/DataFlowUtil.qll

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,19 @@ predicate localFlowStep(Node nodeFrom, Node nodeTo) {
2020
FlowSummaryImpl::Private::Steps::summaryThroughStepValue(nodeFrom, nodeTo, _)
2121
}
2222

23+
/**
24+
* Holds if data flows from `source` to `sink` in one or more local
25+
* (intra-procedural) steps.
26+
*/
27+
pragma[inline]
28+
private predicate localFlowPlus(Node source, Node sink) = fastTC(localFlowStep/2)(source, sink)
29+
2330
/**
2431
* Holds if data flows from `source` to `sink` in zero or more local
2532
* (intra-procedural) steps.
2633
*/
2734
pragma[inline]
28-
predicate localFlow(Node source, Node sink) { localFlowStep*(source, sink) }
35+
predicate localFlow(Node source, Node sink) {
36+
localFlowPlus(source, sink) or
37+
source = sink
38+
}

0 commit comments

Comments
 (0)