diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2013-03-11 08:20:48 +0100 |
---|---|---|
committer | Ivan Kluchnikov <kluchnikovi@gmail.com> | 2015-05-26 15:55:12 +0300 |
commit | f4d336e2c4208c10c107b23826df95c27d0661ac (patch) | |
tree | 908a5891512b3f5293e688515d95fcaee2bcbfe3 /openbsc | |
parent | ce7437e27c3da61dc5bd112285295440ada45ea6 (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.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 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 |