aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2021-07-11 13:19:22 +0600
committerPau Espin Pedrol <pespin@sysmocom.de>2021-10-20 18:31:46 +0200
commit06983d6e078efb70e2ab2e30dd4b05dfeb5bc5a8 (patch)
tree755b23b7d547dfc112265220ec0ad5188afe8a73
parentf20b3086ace25d390f217796058b253203b14951 (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.c12
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;