aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-09-18 15:52:58 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2018-09-18 16:13:58 +0200
commit68cf957bfd8ccee8c82f5328eb7a15aca28cf332 (patch)
treef5cb8455f8c1739f1d8b941d97028e6df92ca77f /include
parent3117b701c8d4645215896c459d6c608358a0a51b (diff)
fix Classmark Update without VLR subscriber
This recent patch moves Classmark storage to the VLR subscriber, and introduced a segfault when a Classmark Update is received during IMSI detach: commit 986fe7ed18580775bed91399a1f02eae60bda251 change-id I27081bf6e9e017923b2d02607f7ea06beddad82a Mon Sep 17 01:12:13 2018 +0200 "store classmark in vlr_subscr, not conn" It assumed that we would never accept any Classmark Update messages unless we also have a valid subscriber for it. Well, that is proven wrong by the ttcn3-msc-test TC_imsi_detach_by_imsi(), which brings osmo-msc to its knees. Fix: in case of no valid vlr_subscr being present, store Classmark in the conn temporarily, and copy any received Classmark to VLR subscriber as soon as it gets associated with the conn (if at all). Change-Id: Ib2a2ae6bf86e8f29fc6751a8b5cdb7187cd70290
Diffstat (limited to 'include')
-rw-r--r--include/osmocom/msc/gsm_data.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h
index 70ac93440..54026f697 100644
--- a/include/osmocom/msc/gsm_data.h
+++ b/include/osmocom/msc/gsm_data.h
@@ -181,6 +181,10 @@ struct gsm_subscriber_connection {
bool waiting_for_clear_complete;
} a;
+
+ /* Temporary storage for Classmark Information for times when a connection has no VLR subscriber
+ * associated yet. It will get copied to the VLR subscriber upon msc_vlr_subscr_assoc(). */
+ struct gsm_classmark temporary_classmark;
};