libmsc: Refuse service to anyone not attached

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c
index b9b3643..c772fff 100644
--- a/openbsc/src/libmsc/gsm_04_08.c
+++ b/openbsc/src/libmsc/gsm_04_08.c
@@ -909,6 +909,10 @@
 	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;