aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2013-06-13 09:59:18 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2017-12-01 03:37:44 +0100
commit88b9e13652f61a40f9439aabe96537fefb465706 (patch)
tree65372c2926fbfd859fd5ea22463815ba86528367
parent67682df5571daa5c7afd4c1ab7a7bca2efd323e7 (diff)
Fix assignment failure handling at bsc_api.c
If assignment fails, we must check if the secondary lchan has been released already. This can happen if the BTS indicates a CHANNEL FAILURE INDICATION, then the BSC already released the secondary lchan.
-rw-r--r--src/libbsc/bsc_api.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libbsc/bsc_api.c b/src/libbsc/bsc_api.c
index 22e774c03..db3d1bb5f 100644
--- a/src/libbsc/bsc_api.c
+++ b/src/libbsc/bsc_api.c
@@ -524,8 +524,10 @@ static void handle_ass_fail(struct gsm_subscriber_connection *conn,
/* stop the timer and release it */
osmo_timer_del(&conn->T10);
- lchan_release(conn->secondary_lchan, 0, RSL_REL_LOCAL_END);
- conn->secondary_lchan = NULL;
+ if (conn->secondary_lchan) {
+ lchan_release(conn->secondary_lchan, 0, RSL_REL_LOCAL_END);
+ conn->secondary_lchan = NULL;
+ }
gh = msgb_l3(msg);
if (msgb_l3len(msg) - sizeof(*gh) != 1) {