Merge "RIC-1044: Add array size checks"
[ric-plt/e2mgr.git] / E2Manager / handlers / rmrmsghandlers / ric_service_update_handler.go
index b8d1c06..fda411f 100644 (file)
@@ -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)