diff options
Diffstat (limited to 'src/libmsc/msc_a.c')
-rw-r--r-- | src/libmsc/msc_a.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c index 553761fe3..b3e2e32c3 100644 --- a/src/libmsc/msc_a.c +++ b/src/libmsc/msc_a.c @@ -1562,6 +1562,15 @@ int msc_a_tx_dtap_to_i(struct msc_a *msc_a, struct msgb *dtap) { struct ran_msg ran_msg; + if (!msc_a) { + struct gsm48_hdr *gh = msgb_l3(dtap) ? : dtap->data; + uint8_t pdisc = gsm48_hdr_pdisc(gh); + LOGP(DMSC, LOGL_ERROR, "Attempt to send DTAP to NULL MSC-A, dropping message: %s %s\n", + gsm48_pdisc_name(pdisc), gsm48_pdisc_msgtype_name(pdisc, gsm48_hdr_msg_type(gh))); + msgb_free(dtap); + return -EIO; + } + if (msc_a->c.ran->type == OSMO_RAT_EUTRAN_SGS) { /* The SGs connection to the MME always is at the MSC-A. */ return sgs_iface_tx_dtap_ud(msc_a, dtap); |