diff options
Diffstat (limited to 'src/iu_client.c')
-rw-r--r-- | src/iu_client.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/iu_client.c b/src/iu_client.c index c7ed341..7a0a78e 100644 --- a/src/iu_client.c +++ b/src/iu_client.c @@ -812,6 +812,13 @@ static int sccp_sap_up(struct osmo_prim_hdr *oph, void *_scu) rc = 0; if (msgb_l2len(oph->msg) > 0) rc = ranap_cn_rx_co(cn_ranap_handle_co, ue, msgb_l2(oph->msg), msgb_l2len(oph->msg)); + + /* A Iu Release event might be used to free the UE in cn_ranap_handle_co. */ + ue = ue_conn_ctx_find(prim->u.disconnect.conn_id); + if (!ue) + break; + + global_iu_event_cb(ue, RANAP_IU_EVENT_LINK_INVALIDATED, NULL); break; case OSMO_PRIM(OSMO_SCU_PRIM_N_DATA, PRIM_OP_INDICATION): /* connection-oriented data received */ |