If there is already a subscriber and it does not equal to us -> moan
And unreference the gsm_subscriber object otherwise we would leak.
diff --git a/src/gsm_04_08.c b/src/gsm_04_08.c
index c84e761..130a428 100644
--- a/src/gsm_04_08.c
+++ b/src/gsm_04_08.c
@@ -603,6 +603,11 @@
if (!msg->lchan->subscr)
msg->lchan->subscr = subscr;
+ else if (msg->lchan->subscr != subscr) {
+ DEBUGP(DMM, "<- CM Channel already owned by someone else?\n");
+ subscr_put(subscr);
+ }
+
return gsm48_tx_mm_serv_ack(msg->lchan);
}