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