diff options
authorAndreas Eversberg <jolly@eversberg.eu>2013-03-11 08:20:48 +0100
committerIvan Kluchnikov <kluchnikovi@gmail.com>2015-05-26 15:55:12 +0300
commitf4d336e2c4208c10c107b23826df95c27d0661ac (patch)
parentce7437e27c3da61dc5bd112285295440ada45ea6 (diff)
Add check for non existing lchan at tch_frame_down()
Traffic cannot sent to BTS, if there is (currently) no logical channel associated with the transaction. This happens, if TCH traffic is received from upper layer, but there is no lchan available before completing immediate assignment, handover or assignment process.
1 files changed, 4 insertions, 0 deletions
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c
index 92ff582a7..8cfa2e674 100644
--- a/openbsc/src/libmsc/gsm_04_08.c
+++ b/openbsc/src/libmsc/gsm_04_08.c
@@ -1836,6 +1836,10 @@ int tch_frame_down(struct gsm_network *net, uint32_t callref, struct gsm_data_fr
LOGP(DMNCC, LOGL_NOTICE, "TCH frame for trans without conn\n");
return 0;
+ if (!trans->conn->lchan) {
+ LOGP(DMNCC, LOGL_NOTICE, "TCH frame for trans without lchan\n");
+ return 0;
+ }
if (trans->conn->lchan->type != GSM_LCHAN_TCH_F
&& trans->conn->lchan->type != GSM_LCHAN_TCH_H) {
/* This should be LOGL_ERROR or NOTICE, but