fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/29660 )
Change subject: mobile: check return value of gsm_arfcn2band_rc() ......................................................................
mobile: check return value of gsm_arfcn2band_rc()
Change-Id: Ia5bc9f8bf4aa3ea7374c67e329db22612bb350ca Fixes: CID#282374, CID#282375, CID#282376 --- M src/host/layer23/src/mobile/gsm322.c M src/host/layer23/src/mobile/gsm48_rr.c 2 files changed, 13 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/60/29660/1
diff --git a/src/host/layer23/src/mobile/gsm322.c b/src/host/layer23/src/mobile/gsm322.c index ea760b5..d288596 100644 --- a/src/host/layer23/src/mobile/gsm322.c +++ b/src/host/layer23/src/mobile/gsm322.c @@ -4203,7 +4203,10 @@ nb->prio_low = 1;
/* get C1 & C2 */ - gsm_arfcn2band_rc(nb->arfcn, &band); + if (gsm_arfcn2band_rc(nb->arfcn, &band) != 0) { + LOGP(DNB, LOGL_ERROR, "gsm_arfcn2band_rc() failed\n"); + goto cont; + } class = class_of_band(ms, band); nb->c1 = calculate_c1(DNB, nb->rla_c_dbm, s->rxlev_acc_min_db, ms_pwr_dbm(band, s->ms_txpwr_max_cch), @@ -4703,7 +4706,11 @@ enum gsm_band band; int class;
- gsm_arfcn2band_rc(cs->arfcn, &band); + if (gsm_arfcn2band_rc(cs->arfcn, &band) != 0) { + LOGP(DNB, LOGL_ERROR, "gsm_arfcn2band_rc() failed\n"); + return -EINVAL; + } + class = class_of_band(cs->ms, band);
/* calculate the RAL_C of serving cell */ diff --git a/src/host/layer23/src/mobile/gsm48_rr.c b/src/host/layer23/src/mobile/gsm48_rr.c index 48c70f1..be9a7e1 100644 --- a/src/host/layer23/src/mobile/gsm48_rr.c +++ b/src/host/layer23/src/mobile/gsm48_rr.c @@ -1516,7 +1516,10 @@ uint8_t tx_power; enum gsm_band band;
- gsm_arfcn2band_rc(cs->arfcn, &band); + if (gsm_arfcn2band_rc(cs->arfcn, &band) != 0) { + LOGP(DRR, LOGL_ERROR, "gsm_arfcn2band_rc() failed\n"); + return -EINVAL; + }
/* already assigned */ if (rr->wait_assign == 2)