diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2013-03-11 08:20:48 +0100 |
---|---|---|
committer | Ivan Kluchnikov <kluchnikovi@gmail.com> | 2014-05-06 17:22:17 +0400 |
commit | 0cdf92b63d50182e24413e1f45bc2d8befb21d5f (patch) | |
tree | 6154a50a6fa29f2f33c5e3b690ce0939c292eeeb /openbsc/src/libmsc | |
parent | 0b20ce86efd1291c981721ad8088a9932e0482e6 (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/src/libmsc')
-rw-r--r-- | openbsc/src/libmsc/gsm_04_08.c | 4 |
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 |