diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2019-04-17 10:06:39 +0200 |
---|---|---|
committer | Philipp Maier <pmaier@sysmocom.de> | 2019-04-17 12:50:07 +0200 |
commit | bb5ba8b7dfe5b61c3905c4cbcae056a3ee47181a (patch) | |
tree | 6376e3013317203abdab279f8aeb209f7811a18f /src/libvlr/vlr_sgs_fsm.c | |
parent | a45e7458e3d791ec7a195144b20d471cafe3b6b2 (diff) |
vlr_sgs_fsm: make sure vsub is marked used when LA is present
When the LU is accepted and the subscriber (vsub) is not claimed as "in
use" in the ref counting system.
- Make sure vlr_subscr_get() is called when the LU is accepted.
Change-Id: Iba90be095569cc5212c61ab8e8a9bfd4ae51fd44
Related OS#3934
Diffstat (limited to 'src/libvlr/vlr_sgs_fsm.c')
-rw-r--r-- | src/libvlr/vlr_sgs_fsm.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libvlr/vlr_sgs_fsm.c b/src/libvlr/vlr_sgs_fsm.c index ee1d74804..a25d41c3b 100644 --- a/src/libvlr/vlr_sgs_fsm.c +++ b/src/libvlr/vlr_sgs_fsm.c @@ -128,7 +128,13 @@ static void sgs_ue_fsm_lau_present(struct osmo_fsm_inst *fi, uint32_t event, voi vsub->loc_conf_in_hlr_ind = true; vsub->la_allowed = true; vsub->imsi_detached_flag = false; - vsub->lu_complete = true; + + if (!vsub->lu_complete) { + vsub->lu_complete = true; + /* Balanced by vlr_subscr_expire() */ + vlr_subscr_get(vsub, VSUB_USE_ATTACHED); + } + vlr_sgs_fsm_update_id(vsub); vsub->cs.attached_via_ran = OSMO_RAT_EUTRAN_SGS; |