diff options
author | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2021-07-11 13:19:22 +0600 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-10-20 18:31:46 +0200 |
commit | 06983d6e078efb70e2ab2e30dd4b05dfeb5bc5a8 (patch) | |
tree | 755b23b7d547dfc112265220ec0ad5188afe8a73 | |
parent | f20b3086ace25d390f217796058b253203b14951 (diff) |
lchan_fsm: fix potential NULL-pointer dereference
Test case TC_lost_sdcch_during_assignment from ttcn3-bsc-test
causes osmo-bsc to crash due to for_conn being NULL.
This patch is a backport from osmo-bsc.git master
dfd7bef6644d0c0837f7e5498bc5c86362b668dc.
Change-Id: I373855b95f8bde0ce8f9c2ae7bf95c9135d33484
Related: SYS#5526, OS#5255
-rw-r--r-- | src/osmo-bsc/lchan_fsm.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 9c7ecaf48..fb40e00c9 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -114,6 +114,18 @@ static void _lchan_on_activation_failure(struct gsm_lchan *lchan, enum lchan_act case FOR_ASSIGNMENT: LOG_LCHAN(lchan, LOGL_NOTICE, "Signalling Assignment FSM of error (%s)\n", lchan->last_error ? : "unknown error"); + if (!for_conn) { + LOG_LCHAN(lchan, LOGL_ERROR, + "lchan activation for Assignment failed, but activation request has" + " no conn\n"); + break; + } + if (!for_conn->assignment.fi) { + LOG_LCHAN(lchan, LOGL_ERROR, + "lchan activation for Assignment failed, but conn has no ongoing" + " assignment procedure\n"); + break; + } _osmo_fsm_inst_dispatch(for_conn->assignment.fi, ASSIGNMENT_EV_LCHAN_ERROR, lchan, file, line); return; |