diff --git a/openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c b/openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c index dfc50683ff51baa5890263628066ee780e63ef39..aa7a402f2b1ce6cf1cf36998019d7a6e859d642b 100644 --- a/openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c +++ b/openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc.c @@ -412,8 +412,10 @@ int flexran_agent_rrc_stats_reply(mid_t mod_id, if (neigh_meas->n_eutra_meas > 0){ eutra_meas = malloc(sizeof(Protocol__FlexEutraMeasurements) * neigh_meas->n_eutra_meas); - if (eutra_meas == NULL) + if (eutra_meas == NULL) { + free(neigh_meas); goto error; + } for (int j = 0; j < neigh_meas->n_eutra_meas; j++ ){ @@ -423,6 +425,7 @@ int flexran_agent_rrc_stats_reply(mid_t mod_id, free(eutra_meas[k]); } free(eutra_meas); + free(neigh_meas); goto error; } @@ -453,6 +456,8 @@ int flexran_agent_rrc_stats_reply(mid_t mod_id, rrc_measurements->neigh_meas = neigh_meas; + } else { + free(neigh_meas); } ue_report[i]->rrc_measurements = rrc_measurements;