From ce5509a080339f9f23ddfe5920a53f249ccca7b6 Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Wed, 7 Dec 2022 15:57:47 +0100 Subject: [PATCH] Kotlin: Adjust MaD argument shifting for `$default` method --- .../java/dataflow/internal/FlowSummaryImplSpecific.qll | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImplSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImplSpecific.qll index c3366436d27..3f44d635a68 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImplSpecific.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImplSpecific.qll @@ -120,8 +120,11 @@ private predicate correspondingKotlinParameterDefaultsArgSpec( exists(int oldArgParsed | oldArgParsed = AccessPathSyntax::AccessPath::parseInt(oldArgNumber.splitAt(",").trim()) | - if ktExtensionFunctions(originalCallable, _, _) and oldArgParsed = 0 - then defaultsArgSpec = "Argument[0]" + if + ktExtensionFunctions(originalCallable, _, _) and + ktExtensionFunctions(defaultsCallable, _, _) and + oldArgParsed = 0 + then defaultsArgSpec = "Argument[" + paramOffset + "]" // 1 if dispatch receiver is present, 0 otherwise. else defaultsArgSpec = "Argument[" + (oldArgParsed + paramOffset) + "]" + rest ) )