diff options
-rw-r--r-- | src/gsm/gsm48.c | 2 | ||||
-rw-r--r-- | tests/gsm0408/gsm0408_test.c | 4 | ||||
-rw-r--r-- | tests/gsm0408/gsm0408_test.ok | 8 |
3 files changed, 6 insertions, 8 deletions
diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index 4558dfb6..0f0889b4 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -611,7 +611,7 @@ uint8_t gsm48_generate_mid(uint8_t *buf, const char *id, uint8_t mi_type) uint8_t length = strnlen(id, 255), i, off = 0, odd = (length & 1) == 1; buf[0] = GSM48_IE_MOBILE_ID; - buf[2] = osmo_char2bcd(id[0]) << 4 | mi_type | (odd << 3); + buf[2] = osmo_char2bcd(id[0]) << 4 | (mi_type & GSM_MI_TYPE_MASK) | (odd << 3); /* if the length is even we will fill half of the last octet */ buf[1] = (length + (odd ? 1 : 2)) >> 1; diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index c786d389..9bb320d0 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -380,7 +380,7 @@ static const struct test_mid_encode_decode_test test_mid_encode_decode_tests[] = { .mi_type = GSM_MI_TYPE_IMSI | GSM_MI_ODD, .mi_str = "423423", - .expect_mi_tlv_hex = "1704493224f3", /* encodes "odd" for even number of digits! */ + .expect_mi_tlv_hex = "1704413224f3", }, { .mi_type = GSM_MI_TYPE_IMSI, @@ -464,7 +464,7 @@ static const struct test_mid_encode_decode_test test_mid_encode_decode_tests[] = { .mi_type = GSM_MI_ODD, .mi_str = "1234", - .expect_mi_tlv_hex = "17031832f4", /* encoding invalid MI type, and "odd" for an even number of digits */ + .expect_mi_tlv_hex = "17031032f4", /* encoding invalid MI type */ .expect_str = "", }, }; diff --git a/tests/gsm0408/gsm0408_test.ok b/tests/gsm0408/gsm0408_test.ok index 2db58de8..6e99f5b3 100644 --- a/tests/gsm0408/gsm0408_test.ok +++ b/tests/gsm0408/gsm0408_test.ok @@ -14,10 +14,8 @@ Testing Mobile Identity conversions -> MI-TLV-hex='1704413224f3' -> MI-str="423423" rc=7 - unknown 0x9 423423 - -> MI-TLV-hex='1704493224f3' - -> MI-str="423423F" rc=8 - ERROR: expected MI-str="423423" - ERROR: expected rc=7 + -> MI-TLV-hex='1704413224f3' + -> MI-str="423423" rc=7 - IMSI 4234235 -> MI-TLV-hex='170449322453' -> MI-str="4234235" rc=8 @@ -58,7 +56,7 @@ Testing Mobile Identity conversions -> MI-TLV-hex='17031032f4' -> MI-str="" rc=1 - unknown 0x8 1234 - -> MI-TLV-hex='17031832f4' + -> MI-TLV-hex='17031032f4' -> MI-str="" rc=1 Decoding zero length Mobile Identities |