libosmocore/tests
Stefan Sperling e1a86748a2 fix cell identifier decoding in libosmocore
The cell ID list decoder merged in 11a4d9dd91
has a bug which was introduced part-way through the review process in
gerrit at https://gerrit.osmocom.org/#/c/6509/

When Neels suggested "why not just {...}id_list[MAXLEN] once?" I changed
the cell identifier list from a union of arrays to an array of unions.

After this change, elements smaller than the largest type in the union
were not laid out consecutively in memory anymore. E.g. uint16_t lac
values now occur at offsets of sizeof(id_list[0]) instead of offsets
of sizeof(uint16_t).

The problem is that I forgot to adjust the decoder accordingly, so the
decoder writes to the wrong offsets and returns cell identifier lists
which appear to contain uninitialized values when read back by API
consumers.

I found this problem while adding new regression tests to libosmocore to
test encoding and decoding. This commit adds one such tests for LAC list
decoding, which failed due to the above bug. I plan to write more tests,
however because this first test already uncovered a severe issue I chose
to submit a fix now and work on additional tests in later commits.

Change-Id: Ie1a5a9d858226be578cf11a03cf996d509bd51fb
Related: OS#2847
2018-03-15 18:27:30 +01:00
..
a5 fix compiler warnings for a5 tests 2015-04-07 20:08:38 +02:00
abis abis_test: sanitize: fix msgb memleak 2017-11-18 10:30:58 +00:00
auth milenage_test: cosmetic: verify AUTS in comments 2017-03-15 13:46:58 +00:00
bits Add tests for bitvec_write_field() 2017-10-24 08:21:59 +00:00
bitvec Add function to get uninterrupted bit run 2017-01-06 10:37:42 +00:00
codec libosmocodec: implement ECU (Error Concealment Unit) for FR 2018-01-15 20:12:03 +00:00
coding coding: Add BER-reporting RACH decode functions 2018-02-26 12:26:38 +01:00
comp128 tests: test actual support status for auth. algo 2016-06-29 16:33:40 +00:00
conv Add functions for extended RACH coding 2017-12-11 10:36:47 +00:00
ctrl ctrl: tighten CTRL input parsing 2017-12-20 15:50:24 +00:00
endian introduce byteswap.h with osmo_{htonl,ntohl,htons,ntohs} 2017-05-15 13:42:00 +02:00
fr license: Fix the license to GPL 2017-12-09 13:03:29 +00:00
fsm print BIG FAT ERROR message if osmo_fsm lacks event names 2018-02-26 19:00:23 +00:00
gb Use existing function for TLLI encoding 2018-01-08 14:07:47 +01:00
gea Add GEA3 & GEA4 ciphers 2016-07-11 19:15:24 +00:00
gprs Make osmo_apn_to_str() more robust 2017-10-20 18:19:58 +00:00
gsm0408 gsm0408_test: add test cases for MNC with leading zeros 2018-02-28 19:26:43 +01:00
gsm0808 fix cell identifier decoding in libosmocore 2018-03-15 18:27:30 +01:00
gsm23003 fix osmo_mnc_from_str(): don't try to parse NULL 2018-03-05 04:27:40 +01:00
gsup GSUP: change osmo_gsup_encode() return type 2018-02-05 13:03:42 +01:00
kasumi kasumi_test.c: fix incomplete check 2017-05-14 20:27:22 +03:00
lapd Fix malformed Abis/RSL messages with extra L3 Information field 2017-12-10 14:44:19 +00:00
logging license: Fix the license to GPL 2017-12-09 13:03:29 +00:00
loggingrb license: Fix the license to GPL 2017-12-09 13:03:29 +00:00
msgb add function msgb_printf() to print formatted text into msg buf 2017-10-22 20:09:26 +00:00
msgfile build: resolve compiler warning about implicit delcaration 2014-10-04 11:49:23 +02:00
oap Fix/Update copyright notices; Add SPDX annotation 2017-11-13 01:35:12 +09:00
osmo-auc-gen umts aka: add sqn_ms out-param, print SQN.MS in osmo-auc-gen 2017-08-29 12:46:46 +00:00
prbs Add pseudo-random bit sequence generator to libosmcoore 2017-07-10 23:42:02 +02:00
sercomm Embedded: add sercomm stubs 2018-01-21 19:08:05 +00:00
sim sim: Fix compiler warning and by this fixing the test result 2016-03-21 11:29:16 +01:00
sms sms_test.c: Remove test of deprecated wrapper function 2017-06-18 10:40:18 +02:00
smscb test: Fix compiler warnings on 64bit systems 2015-11-09 16:46:03 +00:00
socket osmo_sock_get_name(): clearly indicate local and remote 2017-07-03 17:29:05 +00:00
stats rate_ctr: fix osmo-sgsn DoS: don't return NULL on already used index 2017-12-20 01:29:59 +01:00
strrb Fix/Update copyright notices; Add SPDX annotation 2017-11-13 01:35:12 +09:00
timer timer: Introduce osmo_clock_gettime to override clock_gettime 2018-03-01 12:33:02 +00:00
tlv tlv_test.c: Fix compilation warnings 2017-06-18 10:40:18 +02:00
ussd tests/ussd: prevent uninitialized memory access 2018-01-22 10:35:53 +00:00
utils tests: utils_test: Fix test failure when compiling with -O0 2018-02-08 09:41:36 +00:00
vty Fix/Update copyright notices; Add SPDX annotation 2017-11-13 01:35:12 +09:00
write_queue wqueue: Reject messges if queue is considered full 2016-12-09 11:37:37 +01:00
Makefile.am timer: Introduce osmo_clock_gettime to override clock_gettime 2018-03-01 12:33:02 +00:00
atlocal.in build: make check: disable sim_test when built with --disable-pcsc 2016-11-16 16:40:44 +00:00
libsercomstub.c Embedded: add sercomm stubs 2018-01-21 19:08:05 +00:00
testsuite.at timer: Introduce osmo_clock_gettime to override clock_gettime 2018-03-01 12:33:02 +00:00