diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-03-05 21:14:59 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2018-03-05 21:16:23 +0100 |
commit | 14cd21417f8774a92900cb707064d650ea769615 (patch) | |
tree | 8d2f1bd2daaa3155d88508a204fd1e5c6d68f802 | |
parent | e39e18992a3b966581f06fa632d6342643996aaa (diff) |
fix build: gprs_ra_id_by_bts(): ensure to init all values
After recent libosmocore commit "implement support for 3-digit MNC with leading
zeros" c4fce1425e19d604c199c895e227dc2519110456
Id2240f7f518494c9df6c8bda52c0d5092f90f221, struct gprs_ra_id has a new member,
namely mnc_3_digits. In gprs_ra_id_by_bts(), this new member is now not
initialized and may end up having an arbitrary value, which then may amount to
mnc_3_digits == true. Hence the resulting BCD representation of the MCC-MNC may
inadvertently and randomly indicate a leading zero on the MNC.
Use a struct assignment so that all members are guaranteed to be set, and so
that mnc_3_digits will be zero in all cases.
Since above libosmocore commit, nanobts_omlattr_test fails "randomly", fixed by
this patch.
Change-Id: I5ae899f3c236b3b4feb5c8cf762e2f2d964dbc65
-rw-r--r-- | openbsc/src/libcommon/gsm_data.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/openbsc/src/libcommon/gsm_data.c b/openbsc/src/libcommon/gsm_data.c index 55d6fce5b..2028f0555 100644 --- a/openbsc/src/libcommon/gsm_data.c +++ b/openbsc/src/libcommon/gsm_data.c @@ -338,10 +338,12 @@ struct gsm_bts *gsm_bts_alloc_register(struct gsm_network *net, enum gsm_bts_typ void gprs_ra_id_by_bts(struct gprs_ra_id *raid, struct gsm_bts *bts) { - raid->mcc = bts->network->country_code; - raid->mnc = bts->network->network_code; - raid->lac = bts->location_area_code; - raid->rac = bts->gprs.rac; + *raid = (struct gprs_ra_id){ + .mcc = bts->network->country_code, + .mnc = bts->network->network_code, + .lac = bts->location_area_code, + .rac = bts->gprs.rac, + }; } int gsm48_ra_id_by_bts(uint8_t *buf, struct gsm_bts *bts) |