diff options
author | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2021-10-23 01:33:34 +0300 |
---|---|---|
committer | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2021-10-23 01:42:41 +0300 |
commit | 184fcb80106aac54961c9c8c98f6fde316a68be9 (patch) | |
tree | ce6e4b6f83a3dd8bab4b438b3a9c88de90c211b2 /src/common | |
parent | 5f3d01eed48ba973a4901e65fc893ac43fd68347 (diff) |
lchan_set_state(): also free pending messages if any
A logical channel may have associated messages, which are pending
for transmission until some event occurs. Do not leak them.
Change-Id: I3264e6caa007e9e9cb9c1c2f8627c408bbb28b9e
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/lchan.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/common/lchan.c b/src/common/lchan.c index 9f274098..c2b0144b 100644 --- a/src/common/lchan.c +++ b/src/common/lchan.c @@ -298,6 +298,11 @@ void lchan_set_state(struct gsm_lchan *lchan, enum gsm_lchan_state state) lchan->rep_acch.dl_facch[1].msg = NULL; msgb_free(lchan->rep_acch.dl_sacch_msg); lchan->rep_acch.dl_sacch_msg = NULL; + /* free() pending messages */ + msgb_free(lchan->pending_rel_ind_msg); + lchan->pending_rel_ind_msg = NULL; + msgb_free(lchan->pending_chan_activ); + lchan->pending_chan_activ = NULL; /* fall through */ default: if (lchan->early_rr_ia) { |