From 4c358d2e16450b3bdb4254955be5cbda61e9cb7c Mon Sep 17 00:00:00 2001 From: Valentyn Sobol <8640896+Saloed@users.noreply.github.com> Date: Tue, 18 Aug 2026 11:07:35 +0300 Subject: [PATCH] fix(analyzer): Apply default get when no config at all --- .../jvm/ap/ifds/analysis/JIRMethodCallFlowFunction.kt | 2 +- .../dataflow/jvm/ap/ifds/trace/JIRMethodCallPrecondition.kt | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/core/opentaint-dataflow-core/opentaint-jvm-dataflow/src/main/kotlin/org/opentaint/dataflow/jvm/ap/ifds/analysis/JIRMethodCallFlowFunction.kt b/core/opentaint-dataflow-core/opentaint-jvm-dataflow/src/main/kotlin/org/opentaint/dataflow/jvm/ap/ifds/analysis/JIRMethodCallFlowFunction.kt index 0487db76e..6e54e5ebc 100644 --- a/core/opentaint-dataflow-core/opentaint-jvm-dataflow/src/main/kotlin/org/opentaint/dataflow/jvm/ap/ifds/analysis/JIRMethodCallFlowFunction.kt +++ b/core/opentaint-dataflow-core/opentaint-jvm-dataflow/src/main/kotlin/org/opentaint/dataflow/jvm/ap/ifds/analysis/JIRMethodCallFlowFunction.kt @@ -297,7 +297,7 @@ class JIRMethodCallFlowFunction( } } - if (passThroughFacts.isNone) { + if (passRules.isEmpty()) { analysisContext.analysisManager.params.defaultGetModel?.run { val defaultRules = defaultPropagationRules(method) val defaultPass = applyPassThrough(defaultRules, conditionEvaluator, passEvaluator) diff --git a/core/opentaint-dataflow-core/opentaint-jvm-dataflow/src/main/kotlin/org/opentaint/dataflow/jvm/ap/ifds/trace/JIRMethodCallPrecondition.kt b/core/opentaint-dataflow-core/opentaint-jvm-dataflow/src/main/kotlin/org/opentaint/dataflow/jvm/ap/ifds/trace/JIRMethodCallPrecondition.kt index b60e6ed1c..4e0fbaf11 100644 --- a/core/opentaint-dataflow-core/opentaint-jvm-dataflow/src/main/kotlin/org/opentaint/dataflow/jvm/ap/ifds/trace/JIRMethodCallPrecondition.kt +++ b/core/opentaint-dataflow-core/opentaint-jvm-dataflow/src/main/kotlin/org/opentaint/dataflow/jvm/ap/ifds/trace/JIRMethodCallPrecondition.kt @@ -135,8 +135,10 @@ class JIRMethodCallPrecondition( ) { val passRules = taintCtx.passRulesForCallStatement(statement, callExpr, returnValue, fact = null).toMutableList() - analysisContext.analysisManager.params.defaultGetModel?.run { - passRules += defaultPropagationRules(callExpr.method.method) + if (passRules.isEmpty()) { + analysisContext.analysisManager.params.defaultGetModel?.run { + passRules += defaultPropagationRules(callExpr.method.method) + } } if (passRules.isEmpty()) return