diff --git a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c index c15b9368707e85391b91c7c04c378c8f9e4727ec..b38304742b579dca16e5f5f730143e6572d358ff 100644 --- a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c +++ b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c @@ -122,8 +122,13 @@ int flexran_agent_mac_stats_reply(mid_t mod_id, for (j = 0; j < ue_report[i]->n_rlc_report; j++) { rlc_reports[j] = malloc(sizeof(Protocol__FlexRlcBsr)); - if (rlc_reports[j] == NULL) + if (rlc_reports[j] == NULL){ + for (k = 0; k < j; k++){ + free(rlc_reports[k]); + } + free(rlc_reports); goto error; + } protocol__flex_rlc_bsr__init(rlc_reports[j]); rlc_reports[j]->lc_id = j+1; rlc_reports[j]->has_lc_id = 1;