diff --git a/openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c b/openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c index 685f1902cd..65d0f11593 100644 --- a/openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c +++ b/openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c @@ -459,6 +459,7 @@ void nr_ue_meas_neighboring_cell(void *arg) do_neighboring_cell_measurements(&args->proc, args->ue, args->rxdata, args->rxdata_size); args->ue->measurements.meas_request_pending = false; + free(args->rxdata); free(args); } diff --git a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c index 225634937b..18e5dbe269 100644 --- a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c +++ b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c @@ -1201,10 +1201,11 @@ int pbch_processing(PHY_VARS_NR_UE *ue, const UE_nr_rxtx_proc_t *proc, nr_phy_da // Copy rxdata uint32_t rxdata_size = (2 * (fp->samples_per_frame) + fp->ofdm_symbol_size); size_t total_size = sizeof(nr_meas_task_args_t) + fp->nb_antennas_rx * rxdata_size * sizeof(c16_t); - nr_meas_task_args_t *args = malloc(total_size); + nr_meas_task_args_t *args = malloc_or_fail(total_size); args->proc = *proc; args->ue = ue; args->rxdata_size = rxdata_size; + args->rxdata = malloc_or_fail(fp->nb_antennas_rx * sizeof(*args->rxdata)); for (int i = 0; i < fp->nb_antennas_rx; i++) { args->rxdata[i] = &args->rxdata_ant[i * rxdata_size];