aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libmsc/gsm_04_08.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c
index 6bd82d0e1..63790598d 100644
--- a/src/libmsc/gsm_04_08.c
+++ b/src/libmsc/gsm_04_08.c
@@ -825,7 +825,12 @@ int gsm48_rx_mm_serv_req(struct msc_a *msc_a, struct msgb *msg)
static int gsm48_rx_cm_reest_req(struct msc_a *msc_a, struct msgb *msg)
{
struct osmo_mobile_identity mi;
- osmo_mobile_identity_decode_from_l3(&mi, msg, false);
+ int rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false);
+ if (rc) {
+ LOGP(DMM, LOGL_ERROR, "CM RE-ESTABLISH REQUEST: cannot decode Mobile Identity\n");
+ return -EINVAL;
+ }
+
DEBUGP(DMM, "<- CM RE-ESTABLISH REQUEST %s\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi));
/* we don't support CM call re-establishment */