diff options
author | Harald Welte <laforge@gnumonks.org> | 2009-01-10 03:21:41 +0000 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2009-01-10 03:21:41 +0000 |
commit | 9bb7c70016593bc04afb8d183af57f839ef556a9 (patch) | |
tree | b49fdaf921fab2cf3acf748b4f1f8aaedc20c2a2 /src/gsm_04_08.c | |
parent | 4ed0e924640242749fee6db1b5da53278cc57e63 (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.c | 5 |
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); } |