# UNDF: UNDF-2026-000000068 --- a/exposed-core/src/main/kotlin/org/jetbrains/exposed/v1/core/Table.kt +++ b/exposed-core/src/main/kotlin/org/jetbrains/exposed/v1/core/Table.kt @@ -1682,8 +1682,10 @@ open class Table( private fun T.clone(replaceArgs: Map, Any> = emptyMap()): T = javaClass.kotlin.run { val consParams = primaryConstructor!!.parameters val mutableProperties = memberProperties.filterIsInstance>() + // CWE-407 fix: pre-compute constructor parameter names as HashSet to avoid O(P×C) repeated List allocations + val consParamNames = consParams.mapTo(HashSet()) { it.name } val allValues = memberProperties - .filter { it in mutableProperties || it.name in consParams.map(KParameter::name) } + .filter { it in mutableProperties || it.name in consParamNames } .associate { it.name to (replaceArgs[it] ?: it.get(this@clone)) } primaryConstructor!!.callBy(consParams.associateWith { allValues[it.name] }).also { newInstance -> for (prop in mutableProperties) {