[PATCH] gsm/gsm48ie: Fix range 256 W[i] decoding

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Jacob Erlbeck jerlbeck at sysmocom.de
Mon Jan 13 13:21:23 UTC 2014


Currently w[14]/w[15] and w[18]/w[19] are swapped in range 256 format
decoding in gsm48_decode_freq_list().

This patch fixes this.

Sponsored-by: On-Waves ehf
---
 src/gsm/gsm48_ie.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/gsm/gsm48_ie.c b/src/gsm/gsm48_ie.c
index 78619b9..2cc0645 100644
--- a/src/gsm/gsm48_ie.c
+++ b/src/gsm/gsm48_ie.c
@@ -985,17 +985,17 @@ int gsm48_decode_freq_list(struct gsm_sysinfo_freq *f, uint8_t *cd,
 		if (len >= 12)
 			w[13] = r->w13;
 		if (len >= 13)
-			w[14] = r->w15;
+			w[14] = (r->w14_hi << 2) | r->w14_lo;
 		if (len >= 13)
-			w[15] = (r->w14_hi << 2) | r->w14_lo;
+			w[15] = r->w15;
 		if (len >= 14)
 			w[16] = (r->w16_hi << 3) | r->w16_lo;
 		if (len >= 14)
 			w[17] = r->w17;
 		if (len >= 15)
-			w[18] = r->w19;
+			w[18] = (r->w18_hi << 3) | r->w18_lo;
 		if (len >= 15)
-			w[19] = (r->w18_hi << 3) | r->w18_lo;
+			w[19] = r->w19;
 		if (len >= 16)
 			w[20] = (r->w20_hi << 3) | r->w20_lo;
 		if (len >= 16)
-- 
1.7.9.5





More information about the OpenBSC mailing list