From 8e0ef6dcd73d10296995e17f260e5a9b71407306 Mon Sep 17 00:00:00 2001 From: Donat Zenichev Date: Fri, 23 May 2025 12:59:43 +0200 Subject: [PATCH] MT#59962 CPSLimit: AmConfig, by default 9999 Make it quasi infinite, on cases with wrong read of config parameter `cps_limit`, so that if int has undefined value it doesn't suddenly cause undefined behavior of the license limitation agent. Change-Id: If1ca5442135793929eb96d47642ea4314cd82803 --- core/AmConfig.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/core/AmConfig.cpp b/core/AmConfig.cpp index af26950b..dd9c2fae 100644 --- a/core/AmConfig.cpp +++ b/core/AmConfig.cpp @@ -647,16 +647,19 @@ int AmConfig::readConfiguration() } if(cfg.hasParameter("cps_limit")){ - unsigned int CPSLimit; - vector limit = explode(cfg.getParameter("cps_limit"), ";"); - if (limit.size() != 3) { + unsigned int CPSLimit = 9999; /* silently make infinite if suddenly was wrong read */ + + vector limit_parameters = explode(cfg.getParameter("cps_limit"), ";"); + + if (limit_parameters.size() != 3) { ERROR("invalid cps_limit specified.\n"); } else { - if (str2int(limit[0], CPSLimit) || str2int(limit[1], CPSLimitErrCode)) { - ERROR("invalid cps_limit specified.\n"); + if (str2int(limit_parameters[0], CPSLimit) || str2int(limit_parameters[1], CPSLimitErrCode)) { + ERROR("invalid cps_limit specified.\n"); } - CPSLimitErrReason = limit[2]; + CPSLimitErrReason = limit_parameters[2]; } + AmSessionContainer::instance()->setCPSLimit(CPSLimit); }