fixeria has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmocom-bb/+/30329 )
Change subject: mobile: gsm48_rr_set_mode(): check rc of rsl_dec_chan_nr()
......................................................................
mobile: gsm48_rr_set_mode(): check rc of rsl_dec_chan_nr()
The rsl_dec_chan_nr() may fail to decode RSL channel number, so
the 'ch_type' variable would be uninitialized. Let's check rc.
Change-Id: I9ab18bdaf41a29fcd32a7060668ef9db07b8cf7e
Related: OS#5599
---
M src/host/layer23/src/mobile/gsm48_rr.c
1 file changed, 8 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/29/30329/1
diff --git a/src/host/layer23/src/mobile/gsm48_rr.c
b/src/host/layer23/src/mobile/gsm48_rr.c
index 6092835..e7722f1 100644
--- a/src/host/layer23/src/mobile/gsm48_rr.c
+++ b/src/host/layer23/src/mobile/gsm48_rr.c
@@ -3427,9 +3427,16 @@
{
struct gsm48_rrlayer *rr = &ms->rrlayer;
uint8_t ch_type, ch_subch, ch_ts;
+ int rc;
+
+ /* Decode RSL channel number */
+ rc = rsl_dec_chan_nr(chan_nr, &ch_type, &ch_subch, &ch_ts);
+ if (rc) {
+ LOGP(DRR, LOGL_ERROR, "Couldn't decode RSL channel number\n");
+ return -EINVAL;
+ }
/* only apply mode to TCH/F or TCH/H */
- rsl_dec_chan_nr(chan_nr, &ch_type, &ch_subch, &ch_ts);
if (ch_type != RSL_CHAN_Bm_ACCHs
&& ch_type != RSL_CHAN_Lm_ACCHs)
return -ENOTSUP;
--
To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/30329
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: I9ab18bdaf41a29fcd32a7060668ef9db07b8cf7e
Gerrit-Change-Number: 30329
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-CC: fixeria <axilirator(a)gmail.com>
Gerrit-MessageType: newchange