aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2013-03-11 08:20:48 +0100
committerIvan Kluchnikov <kluchnikovi@gmail.com>2014-05-06 17:22:17 +0400
commit0cdf92b63d50182e24413e1f45bc2d8befb21d5f (patch)
tree6154a50a6fa29f2f33c5e3b690ce0939c292eeeb /openbsc
parent0b20ce86efd1291c981721ad8088a9932e0482e6 (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.
Diffstat (limited to 'openbsc')
-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 663d855d0..6a9404e9c 100644
--- a/openbsc/src/libmsc/gsm_04_08.c
+++ b/openbsc/src/libmsc/gsm_04_08.c
@@ -1834,6 +1834,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