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(a)sysmocom.de>
Gerrit-MessageType: newchange