aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libmsc/gsm_04_08.c
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2017-03-10 02:17:14 +0100
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2017-03-16 15:32:34 +0100
commit78fc746b10755a645d8d1b52bdcca88fa492f32c (patch)
treeb01e115a4b3f6558fdde894c4bb1d5625d236b26 /openbsc/src/libmsc/gsm_04_08.c
parent952c9b033c5a1b264b41aa16fb0cfeb5db6d361b (diff)
Reinstate msc subscriber conn ref counting
Indeed the easiest way of ensuring all code paths can cause conn discarding while still all code paths can check on whether a conn needs to be discarded. Change-Id: I641fe36d9fa2077e3caf63cc583aaa380603bff0
Diffstat (limited to 'openbsc/src/libmsc/gsm_04_08.c')
-rw-r--r--openbsc/src/libmsc/gsm_04_08.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c
index ade072097..01cae149e 100644
--- a/openbsc/src/libmsc/gsm_04_08.c
+++ b/openbsc/src/libmsc/gsm_04_08.c
@@ -199,7 +199,6 @@ void gsm0408_clear_request(struct gsm_subscriber_connection *conn, uint32_t caus
LOGP(DMM, LOGL_ERROR,
"%s: Conn clear request on uninitialized conn\n",
vlr_subscr_name(conn->vsub));
- msc_subscr_con_free(conn);
return;
}
@@ -3362,7 +3361,7 @@ int mncc_tx_to_cc(struct gsm_network *net, int msg_type, void *arg)
}
/* Assign conn */
- trans->conn = subscr_con_get(conn);
+ trans->conn = msc_conn_get(conn);
vlr_subscr_put(vsub);
} else {
/* update the subscriber we deal with */
@@ -3512,7 +3511,7 @@ static int gsm0408_rcv_cc(struct gsm_subscriber_connection *conn, struct msgb *m
return -ENOMEM;
}
/* Assign transaction */
- trans->conn = subscr_con_get(conn);
+ trans->conn = msc_conn_get(conn);
}
/* find function for current state and message */