Bug in range 512 encoding

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/.

Holger Hans Peter Freyther holger at freyther.de
Sun Dec 8 18:49:48 UTC 2013


On Sun, Dec 08, 2013 at 05:21:02PM +0100, Andreas Eversberg wrote:

> just found a bug in range 512 channel list encoding. the useless write of 0x44 to chan_list[0] will destroy the LSB, which is part of frequency 0, previously written by write_orig_arfcn(). after fixing this, a frequency of ARFCN 512 encodes correctly.
o> 

What about the below snippet. Does it work for you? It matches what the
other (not implemented) routines do. Which ARFCN list did you encode? In
our tests we probably never had orig_arfcn_hi:1 set.

diff --git a/openbsc/src/libbsc/arfcn_range_encode.c b/openbsc/src/libbsc/arfcn_range_encode.c
index 02a75a5..5a2345e 100644
--- a/openbsc/src/libbsc/arfcn_range_encode.c
+++ b/openbsc/src/libbsc/arfcn_range_encode.c
@@ -210,10 +210,11 @@ int range_enc_range256(uint8_t *chan_list, int f0, int *w)
 int range_enc_range512(uint8_t *chan_list, int f0, int *w)
 {
        struct gsm48_range_512 *range512;
+
+       chan_list[0] = 0x44;
        write_orig_arfcn(chan_list, f0);
 
        range512 = (struct gsm48_range_512 *) &chan_list[0];
-       range512->form_id = chan_list[0] = 0x44;
 
        /* W(1) */
        range512->w1_hi = HIGH_BITS(w, 1, 9, 7);





More information about the OpenBSC mailing list