From 830b83f65331e574ee9b3ad5646a97b80e64247f Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 23 Apr 2024 13:07:20 +0200 Subject: [PATCH] Dataflow: Use doublyBoundedFastTC. --- shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 9dfbc3e0bcda..31ff3fbb231d 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -3874,7 +3874,12 @@ module MakeImpl Lang> { n1.getANonHiddenSuccessor(_) = n2 and directReach(n2) } - private predicate pathSuccPlus(PathNodeImpl n1, PathNodeImpl n2) = fastTC(pathSucc/2)(n1, n2) + private predicate tcSrc(PathNodeImpl n) { n.isFlowSource() or n.isSource(_) } + + private predicate tcSink(PathNodeImpl n) { n.isFlowSink() or n instanceof PathNodeSink } + + private predicate pathSuccPlus(PathNodeImpl n1, PathNodeImpl n2) = + doublyBoundedFastTC(pathSucc/2, tcSrc/1, tcSink/1)(n1, n2) /** * A `Node` augmented with a call context (except for sinks) and an access path.