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 185427c3de2deaff50387633e047c6303f0fb545..6fb46a9aa7926a340fc1aacd6bd137c59d2c160a 100644
--- a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
+++ b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
@@ -598,8 +598,10 @@ int flexran_agent_mac_stats_reply(mid_t mod_id,
 
                             Protocol__FlexMacSdusDl ** mac_sdus;
                             mac_sdus = malloc(sizeof(Protocol__FlexMacSdusDl) * flexran_get_num_mac_sdu_tx(mod_id, UE_id, cc_id));
-                            if (mac_sdus == NULL)
+                            if (mac_sdus == NULL) {
+                                free(macstats);
                                 goto error;
+                            }
 
                             macstats->n_mac_sdus_dl = flexran_get_num_mac_sdu_tx(mod_id, UE_id, cc_id);