diff options
Diffstat (limited to 'src/libbsc/e1_config.c')
-rw-r--r-- | src/libbsc/e1_config.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libbsc/e1_config.c b/src/libbsc/e1_config.c index 90e29d3cf..e7398ed9c 100644 --- a/src/libbsc/e1_config.c +++ b/src/libbsc/e1_config.c @@ -131,10 +131,17 @@ static int bts_isdn_sign_link(struct msgb *msg) ret = bts->model->oml_rcvmsg(msg); break; case E1INP_SIGN_RSL: + if (link->trx->mo.nm_state.administrative == NM_STATE_LOCKED) { + LOGP(DLMI, LOGL_ERROR, "(bts=%d/trx=%d) discarding RSL message received " + "in locked administrative state\n", link->trx->bts->nr, link->trx->nr); + msgb_free(msg); + break; + } ret = abis_rsl_rcvmsg(msg); break; default: LOGP(DLMI, LOGL_ERROR, "unknown link type %u\n", link->type); + msgb_free(msg); break; } return ret; |