bsc: Fix the clear to release resources first, then set to NULL
This is fixing a crash reported by Nico. Somehow I staged an
unfinished version of this code. The crash should be gone.
diff --git a/openbsc/src/bsc_api.c b/openbsc/src/bsc_api.c
index 576440f..ba6dd88 100644
--- a/openbsc/src/bsc_api.c
+++ b/openbsc/src/bsc_api.c
@@ -189,20 +189,18 @@
*/
int gsm0808_clear(struct gsm_subscriber_connection* conn)
{
- struct gsm_lchan *lchan;
+ if (conn->ho_lchan)
+ bsc_clear_handover(conn);
- lchan = conn->lchan;
+ if (conn->lchan) {
+ lchan_release(conn->lchan, 1, 0);
+ conn->lchan->conn = NULL;
+ }
+
conn->lchan = NULL;
conn->ho_lchan = NULL;
conn->bts = NULL;
- if (conn->ho_lchan)
- bsc_clear_handover(conn);
- if (conn->lchan)
- lchan_release(lchan, 1, 0);
- conn->lchan->conn = NULL;
- conn->lchan = NULL;
-
return 0;
}