From 7e87a7c1f726d3033016d45de6edbc642ace5c04 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Fri, 9 Jun 2023 15:29:13 +0200 Subject: [PATCH] python: rewrite `argumentPositionMatch` to not use the call graph. --- .../python/dataflow/new/internal/TypeTrackerSpecific.qll | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/TypeTrackerSpecific.qll b/python/ql/lib/semmle/python/dataflow/new/internal/TypeTrackerSpecific.qll index f3f9b1b52b9..11e49f5f510 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/TypeTrackerSpecific.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/TypeTrackerSpecific.qll @@ -170,13 +170,12 @@ private import semmle.python.dataflow.new.internal.DataFlowDispatch as DataFlowD pragma[noinline] private predicate argumentPositionMatch( - DataFlowPublic::CallCfgNode call, DataFlowPublic::ArgumentNode arg, + DataFlowPublic::CallCfgNode call, DataFlowPublic::Node arg, DataFlowDispatch::ParameterPosition ppos ) { - exists(DataFlowDispatch::ArgumentPosition apos, DataFlowPrivate::DataFlowCall c | - c.getNode() = call.asCfgNode() and - arg.argumentOf(c, apos) and - DataFlowDispatch::parameterMatch(ppos, apos) + exists(DataFlowDispatch::ArgumentPosition apos | + DataFlowDispatch::parameterMatch(ppos, apos) and + DataFlowDispatch::normalCallArg(call.getNode(), arg, apos) ) }