diff --git a/nfapi/oai_integration/aerial/fapi_nvIPC.c b/nfapi/oai_integration/aerial/fapi_nvIPC.c index 020b91aba1..de6aae93dc 100644 --- a/nfapi/oai_integration/aerial/fapi_nvIPC.c +++ b/nfapi/oai_integration/aerial/fapi_nvIPC.c @@ -254,6 +254,24 @@ static int ipc_handle_rx_msg(nv_ipc_t *ipc, nv_ipc_msg_t *msg) if (((vnf_info *)vnf_config->user_data)->p7_vnfs->config->nr_uci_indication) { (((vnf_info *)vnf_config->user_data)->p7_vnfs->config->nr_uci_indication)(&ind); + for (int i = 0; i < ind.num_ucis; i++) { + if (ind.uci_list[i].pdu_type == NFAPI_NR_UCI_FORMAT_2_3_4_PDU_TYPE) { + if (ind.uci_list[i].pucch_pdu_format_2_3_4.sr.sr_payload) { + free(ind.uci_list[i].pucch_pdu_format_2_3_4.sr.sr_payload); + } + if(ind.uci_list[i].pucch_pdu_format_2_3_4.harq.harq_payload){ + free(ind.uci_list[i].pucch_pdu_format_2_3_4.harq.harq_payload); + } + if(ind.uci_list[i].pucch_pdu_format_2_3_4.csi_part1.csi_part1_payload){ + free(ind.uci_list[i].pucch_pdu_format_2_3_4.csi_part1.csi_part1_payload); + } + if(ind.uci_list[i].pucch_pdu_format_2_3_4.csi_part2.csi_part2_payload){ + free(ind.uci_list[i].pucch_pdu_format_2_3_4.csi_part2.csi_part2_payload); + } + } + } + free(ind.uci_list); + ind.uci_list = NULL; } break; diff --git a/nfapi/oai_integration/aerial/fapi_vnf_p7.c b/nfapi/oai_integration/aerial/fapi_vnf_p7.c index 605550740b..b223cfc6ae 100644 --- a/nfapi/oai_integration/aerial/fapi_vnf_p7.c +++ b/nfapi/oai_integration/aerial/fapi_vnf_p7.c @@ -473,19 +473,19 @@ int aerial_phy_nr_uci_indication(nfapi_nr_uci_indication_t *ind) uci_ind_pdu->sr.sr_payload = CALLOC(1, sizeof(*uci_ind_pdu->sr.sr_payload)); AssertFatal(uci_ind_pdu->sr.sr_payload != NULL, "Memory not allocated for uci_ind_pdu->sr.sr_payload in phy_nr_uci_indication."); - *uci_ind_pdu->sr.sr_payload = *ind_pdu->sr.sr_payload; + memcpy(uci_ind_pdu->sr.sr_payload,ind_pdu->sr.sr_payload,sizeof(*uci_ind_pdu->sr.sr_payload)); } if (ind_pdu->csi_part1.csi_part1_payload) { uci_ind_pdu->csi_part1.csi_part1_payload = CALLOC(1, sizeof(*uci_ind_pdu->csi_part1.csi_part1_payload)); AssertFatal(uci_ind_pdu->csi_part1.csi_part1_payload != NULL, "Memory not allocated for uci_ind_pdu->csi_part1.csi_part1_payload in phy_nr_uci_indication."); - *uci_ind_pdu->csi_part1.csi_part1_payload = *ind_pdu->csi_part1.csi_part1_payload; + memcpy(uci_ind_pdu->csi_part1.csi_part1_payload,ind_pdu->csi_part1.csi_part1_payload,sizeof(*uci_ind_pdu->csi_part1.csi_part1_payload)); } if (ind_pdu->csi_part2.csi_part2_payload) { uci_ind_pdu->csi_part2.csi_part2_payload = CALLOC(1, sizeof(*uci_ind_pdu->csi_part2.csi_part2_payload)); AssertFatal(uci_ind_pdu->csi_part2.csi_part2_payload != NULL, "Memory not allocated for uci_ind_pdu->csi_part2.csi_part2_payload in phy_nr_uci_indication."); - *uci_ind_pdu->csi_part2.csi_part2_payload = *ind_pdu->csi_part2.csi_part2_payload; + memcpy(uci_ind_pdu->csi_part2.csi_part2_payload,ind_pdu->csi_part2.csi_part2_payload,sizeof(*uci_ind_pdu->csi_part2.csi_part2_payload)); } break; }