arehbein has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/32073 ) Change subject: gsm_objclass2mo(): First check if TRX number is valid ...................................................................... gsm_objclass2mo(): First check if TRX number is valid This is the first step in fixing the error handling w.r.t. NACK messages. The next step will be to have the function to receive an additional out-parameter that contains the cause of error if this function fails. Related: OS#5961 Related: OS#5967 Change-Id: I9f21f1a0a9dab897d4fd89ab6b7341ca4aec8b22 --- M src/common/oml.c 1 file changed, 26 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/73/32073/1 diff --git a/src/common/oml.c b/src/common/oml.c index 724e4f8..ff3d0e9 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1614,30 +1614,30 @@ { struct gsm_bts_trx *trx; struct gsm_abis_mo *mo = NULL; - + /* Handle finding TRX number first */ + switch (obj_class) { + case NM_OC_RADIO_CARRIER: + case NM_OC_BASEB_TRANSC: + case NM_OC_CHANNEL: + case NM_OC_GPRS_NSVC: + if (obj_inst->trx_nr >= bts->num_trx) + return NULL; + if (!(trx = gsm_bts_trx_num(bts, obj_inst->trx_nr))) + return NULL; + break; + } + /* Other cases, set mo */ switch (obj_class) { case NM_OC_BTS: mo = &bts->mo; break; case NM_OC_RADIO_CARRIER: - if (obj_inst->trx_nr >= bts->num_trx) { - return NULL; - } - trx = gsm_bts_trx_num(bts, obj_inst->trx_nr); mo = &trx->mo; break; case NM_OC_BASEB_TRANSC: - if (obj_inst->trx_nr >= bts->num_trx) { - return NULL; - } - trx = gsm_bts_trx_num(bts, obj_inst->trx_nr); mo = &trx->bb_transc.mo; break; case NM_OC_CHANNEL: - if (obj_inst->trx_nr >= bts->num_trx) { - return NULL; - } - trx = gsm_bts_trx_num(bts, obj_inst->trx_nr); if (obj_inst->ts_nr >= TRX_NR_TS) return NULL; mo = &trx->ts[obj_inst->ts_nr].mo; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32073 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9f21f1a0a9dab897d4fd89ab6b7341ca4aec8b22 Gerrit-Change-Number: 32073 Gerrit-PatchSet: 1 Gerrit-Owner: arehbein <arehbein@sysmocom.de> Gerrit-MessageType: newchange