From 28c0585ff0a4779b938d284a9abc64fbe381bee0 Mon Sep 17 00:00:00 2001 From: tchyang Date: Thu, 28 Mar 2024 10:05:22 -0400 Subject: [PATCH] RIC-1044: Add array size checks Change-Id: Ie16b754eb88043bd987600d5b9461a3ce20b44cf Signed-off-by: tchyang --- .../e2_node_config_update_notification_handler.go | 5 +++++ .../rmrmsghandlers/ric_service_update_handler.go | 23 +++++++++++++--------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/E2Manager/handlers/rmrmsghandlers/e2_node_config_update_notification_handler.go b/E2Manager/handlers/rmrmsghandlers/e2_node_config_update_notification_handler.go index 1d667ba..bcb7366 100644 --- a/E2Manager/handlers/rmrmsghandlers/e2_node_config_update_notification_handler.go +++ b/E2Manager/handlers/rmrmsghandlers/e2_node_config_update_notification_handler.go @@ -57,6 +57,11 @@ func (e *E2nodeConfigUpdateNotificationHandler) Handle(request *models.Notificat return } + if len(e2NodeConfig.E2APPDU.InitiatingMessage.Value.E2nodeConfigurationUpdate.ProtocolIEs.E2nodeConfigurationUpdateIEs) == 0 { + e.logger.Errorf("#E2nodeConfigUpdateNotificationHandler.Handle - E2nodeConfigurationUpdateIEs is empty") + return + } + e.logger.Debugf("#E2nodeConfigUpdateNotificationHandler.Handle - RIC_E2_Node_Config_Update parsed successfully %+v", e2NodeConfig) nodebInfo, err := e.rNibDataService.GetNodeb(request.RanName) diff --git a/E2Manager/handlers/rmrmsghandlers/ric_service_update_handler.go b/E2Manager/handlers/rmrmsghandlers/ric_service_update_handler.go index b8d1c06..fda411f 100644 --- a/E2Manager/handlers/rmrmsghandlers/ric_service_update_handler.go +++ b/E2Manager/handlers/rmrmsghandlers/ric_service_update_handler.go @@ -51,19 +51,19 @@ type functionDetails struct { } type RicServiceUpdateHandler struct { - logger *logger.Logger - rmrSender *rmrsender.RmrSender - rNibDataService services.RNibDataService - ranListManager managers.RanListManager + logger *logger.Logger + rmrSender *rmrsender.RmrSender + rNibDataService services.RNibDataService + ranListManager managers.RanListManager RicServiceUpdateManager managers.IRicServiceUpdateManager } -func NewRicServiceUpdateHandler(logger *logger.Logger, rmrSender *rmrsender.RmrSender, rNibDataService services.RNibDataService, ranListManager managers.RanListManager,RicServiceUpdateManager managers.IRicServiceUpdateManager) *RicServiceUpdateHandler { +func NewRicServiceUpdateHandler(logger *logger.Logger, rmrSender *rmrsender.RmrSender, rNibDataService services.RNibDataService, ranListManager managers.RanListManager, RicServiceUpdateManager managers.IRicServiceUpdateManager) *RicServiceUpdateHandler { return &RicServiceUpdateHandler{ - logger: logger, - rmrSender: rmrSender, - rNibDataService: rNibDataService, - ranListManager: ranListManager, + logger: logger, + rmrSender: rmrSender, + rNibDataService: rNibDataService, + ranListManager: ranListManager, RicServiceUpdateManager: RicServiceUpdateManager, } } @@ -92,6 +92,11 @@ func (h *RicServiceUpdateHandler) Handle(request *models.NotificationRequest) { h.RicServiceUpdateManager.StoreExistingRanFunctions(ranName) h.logger.Infof("#RicServiceUpdate.Handle - Getting the ranFunctions before we do the RIC ServiceUpdate handling") + if len(ricServiceUpdate.E2APPDU.InitiatingMessage.Value.RICServiceUpdate.ProtocolIEs.RICServiceUpdateIEs) == 0 { + h.logger.Errorf("#RicServiceUpdateHandler.Handle - RAN name: %s - RICServiceUpdateIEs empty", ranName) + return + } + ackFunctionIds := h.updateFunctions(ricServiceUpdate.E2APPDU.InitiatingMessage.Value.RICServiceUpdate.ProtocolIEs.RICServiceUpdateIEs, nodebInfo) if len(ricServiceUpdate.E2APPDU.InitiatingMessage.Value.RICServiceUpdate.ProtocolIEs.RICServiceUpdateIEs) > 1 { err = h.rNibDataService.UpdateNodebInfoAndPublish(nodebInfo) -- 2.16.6