[PATCH] qmicli: fix PLMN printing
Bjørn Mork
bjorn at mork.no
Mon Feb 8 14:18:14 CET 2016
BCD PLMNs with 2 digit MNCs will have an 'F' digit between
the MCC and the MNC. This maps to \0, which would cause
a truncated result string with only the MCC.
Signed-off-by: Bjørn Mork <bjorn at mork.no>
---
Completely untested. And not exactly sure this is the nicest way
to fix this. But I just stumbled across this in the
--nas-get-cell-location-info output, where the 42:F2:10 in here:
>>>>>> translated = SUCCESS
>>>>>> TLV:
>>>>>> type = "Intrafrequency LTE Info" (0x13)
>>>>>> length = 39
>>>>>> value = 00:42:F2:10:BF:78:0A:88:05:01:AA:05:2B:01:00:00:00:00:02:2B:01:C2:FF:B9:FD:BD:FE:00:00:2C:01:D0:FF:28:FD:B0:FD:00:00
is truncated into 242 here:
[/dev/cdc-wdm0] Successfully got cell location info
Intrafrequency LTE Info
UE In Idle: 'no'
PLMN: '242'
Tracking Area Code: '30911'
.. etc
Bjørn
src/qmicli/qmicli-nas.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/qmicli/qmicli-nas.c b/src/qmicli/qmicli-nas.c
index 9d43d46..c774bf4 100644
--- a/src/qmicli/qmicli-nas.c
+++ b/src/qmicli/qmicli-nas.c
@@ -2233,8 +2233,12 @@ str_from_bcd_plmn (const gchar *bcd)
str = g_malloc (7);
for (i = 0, j = 0 ; i < 3; i++) {
- str[j++] = bcd_chars[bcd[i] & 0xF];
- str[j++] = bcd_chars[(bcd[i] >> 4) & 0xF];
+ str[j] = bcd_chars[bcd[i] & 0xF];
+ if (str[j])
+ j++;
+ str[j] = bcd_chars[(bcd[i] >> 4) & 0xF];
+ if (str[j])
+ j++;
}
str[j] = '\0';
--
2.1.4
More information about the libqmi-devel
mailing list