summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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)
tree908a5891512b3f5293e688515d95fcaee2bcbfe3
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.
-rw-r--r--openbsc/src/libmsc/gsm_04_08.c4
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 92ff582..8cfa2e6 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