Skip to content

Commit 001b6cd

Browse files
committed
FlowSummaryImpl: Model more source/sink steps as jump steps
1 parent 3ee0030 commit 001b6cd

1 file changed

Lines changed: 6 additions & 10 deletions

File tree

shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2260,22 +2260,18 @@ module Make<
22602260
/** Provides a compilation of flow summaries to atomic data-flow steps. */
22612261
module Steps<StepsInputSig StepsInput> {
22622262
private predicate sourceExitStep(SourceOutputNode nodeFrom, Node nodeTo, boolean local) {
2263-
exists(SummaryComponent sc, SourceSinkReportingElement e |
2264-
nodeFrom.isExit(_, sc, e, _) and
2263+
exists(SummaryComponent sc, SourceSinkReportingElement e, string model |
2264+
nodeFrom.isExit(_, sc, e, model) and
22652265
nodeTo = getSourceDataFlowNode(e, sc) and
2266-
if e.getEnclosingCallable() = getNodeEnclosingCallable(nodeTo)
2267-
then local = true
2268-
else local = false
2266+
if nodeFrom.isEntry(_, model) then local = true else local = false
22692267
)
22702268
}
22712269

22722270
private predicate sinkEntryStep(Node nodeFrom, SinkInputNode nodeTo, boolean local) {
2273-
exists(SummaryComponent sc, SourceSinkReportingElement e |
2274-
nodeTo.isEntry(_, sc, e, _) and
2271+
exists(SummaryComponent sc, SourceSinkReportingElement e, string model |
2272+
nodeTo.isEntry(_, sc, e, model) and
22752273
nodeFrom = getSinkDataFlowNode(e, sc) and
2276-
if e.getEnclosingCallable() = getNodeEnclosingCallable(nodeFrom)
2277-
then local = true
2278-
else local = false
2274+
if nodeTo.isExit(_, model) then local = true else local = false
22792275
)
22802276
}
22812277

0 commit comments

Comments
 (0)