aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libmsc/gsm_04_08.c
diff options
context:
space:
mode:
authorSylvain Munaut <tnt@246tNt.com>2012-12-28 00:33:04 +0100
committerHolger Hans Peter Freyther <zecke@selfish.org>2013-01-01 17:03:15 +0100
commit11c1b6e0147efbe78febd45271a0eb1887b031b0 (patch)
tree2d8891e30b31a88cc9b9ffcb6075d262e7b5310a /openbsc/src/libmsc/gsm_04_08.c
parent977cd13741e1e80879ea5b840206044fa1817aea (diff)
libmsc: Refuse service to anyone not attached
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Diffstat (limited to 'openbsc/src/libmsc/gsm_04_08.c')
-rw-r--r--openbsc/src/libmsc/gsm_04_08.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c
index b9b364323..c772fff92 100644
--- a/openbsc/src/libmsc/gsm_04_08.c
+++ b/openbsc/src/libmsc/gsm_04_08.c
@@ -909,6 +909,10 @@ static int gsm48_rx_mm_serv_req(struct gsm_subscriber_connection *conn, struct m
if (!subscr)
return gsm48_tx_mm_serv_rej(conn,
GSM48_REJECT_IMSI_UNKNOWN_IN_HLR);
+ else if (subscr->lac == GSM_LAC_RESERVED_DETACHED)
+ /* If the subscriber is not attached, reject service */
+ return gsm48_tx_mm_serv_rej(conn,
+ GSM48_REJECT_IMSI_UNKNOWN_IN_VLR);
if (!conn->subscr)
conn->subscr = subscr;