aboutsummaryrefslogtreecommitdiffstats
path: root/src/gsm_04_08.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2009-01-10 03:21:41 +0000
committerHarald Welte <laforge@gnumonks.org>2009-01-10 03:21:41 +0000
commit9bb7c70016593bc04afb8d183af57f839ef556a9 (patch)
treeb49fdaf921fab2cf3acf748b4f1f8aaedc20c2a2 /src/gsm_04_08.c
parent4ed0e924640242749fee6db1b5da53278cc57e63 (diff)
If there is already a subscriber and it does not equal to us -> moan
And unreference the gsm_subscriber object otherwise we would leak.
Diffstat (limited to 'src/gsm_04_08.c')
-rw-r--r--src/gsm_04_08.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gsm_04_08.c b/src/gsm_04_08.c
index c84e76186..130a4282e 100644
--- a/src/gsm_04_08.c
+++ b/src/gsm_04_08.c
@@ -603,6 +603,11 @@ static int gsm48_rx_mm_serv_req(struct msgb *msg)
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);
}