From f9e1305da3a63a5c506d22881c2c42e643af9d37 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 23 Jun 2026 20:22:29 +0100 Subject: [PATCH] Python: Fixes after changes to the flow summary API. --- .../semmle/python/dataflow/new/internal/DataFlowPrivate.qll | 2 +- .../semmle/python/dataflow/new/internal/FlowSummaryImpl.qll | 6 ++++++ .../python/dataflow/new/internal/TaintTrackingPrivate.qll | 6 ++---- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll index 04e8ad0587f..f74d91d13ab 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll @@ -529,7 +529,7 @@ predicate simpleLocalFlowStepForTypetracking(Node nodeFrom, Node nodeTo) { } private predicate summaryLocalStep(Node nodeFrom, Node nodeTo, string model) { - FlowSummaryImpl::Private::Steps::summaryLocalStep(nodeFrom.(FlowSummaryNode).getSummaryNode(), + FlowSummaryImpl::Private::Steps::summaryLocalStep(nodeFrom, nodeTo.(FlowSummaryNode).getSummaryNode(), true, model) } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/FlowSummaryImpl.qll b/python/ql/lib/semmle/python/dataflow/new/internal/FlowSummaryImpl.qll index 0931fcca0dc..64d996e4361 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/FlowSummaryImpl.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/FlowSummaryImpl.qll @@ -20,6 +20,8 @@ module Input implements InputSig class SinkBase = Void; + class FlowSummaryCallBase = Void; + predicate callableFromSource(SummarizedCallableBase c) { none() } ArgumentPosition callbackSelfParameterPosition() { result.isLambdaSelf() } @@ -109,6 +111,10 @@ module Input implements InputSig private import Make as Impl private module StepsInput implements Impl::Private::StepsInputSig { + Impl::Private::SummaryNode getSummaryNode(Node n) { + result = n.(FlowSummaryNode).getSummaryNode() + } + overlay[global] DataFlowCall getACall(Public::SummarizedCallable sc) { result = diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/TaintTrackingPrivate.qll b/python/ql/lib/semmle/python/dataflow/new/internal/TaintTrackingPrivate.qll index 2213ff35b1b..50a6be72d9b 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/TaintTrackingPrivate.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/TaintTrackingPrivate.qll @@ -80,10 +80,8 @@ private module Cached { ) and model = "" or - FlowSummaryImpl::Private::Steps::summaryLocalStep(nodeFrom - .(DataFlowPrivate::FlowSummaryNode) - .getSummaryNode(), nodeTo.(DataFlowPrivate::FlowSummaryNode).getSummaryNode(), false, - model) + FlowSummaryImpl::Private::Steps::summaryLocalStep(nodeFrom, + nodeTo.(DataFlowPrivate::FlowSummaryNode).getSummaryNode(), false, model) } }