From 5452d641200b8595a973c874250a27756f47ccbf Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Sun, 7 Mar 2021 21:45:34 +0100 Subject: [PATCH] ts_51_011: fix bitmask compositing in EF_xPLMNwAcT.enc_act() This commit fixes two problems (found by semgrep): * "'foo' and 'bar' in list" is incorrect, because it's interpreted as "'foo' and ('bar' in list)". Strings with a non-zero length evaluate to True, thus it's True if at least 'bar' is present. * Copy-pasted 'E-UTRAN NB-S1' checked two times. The first condition is redundant, and the whole block can be re-implemented using two independent 'if' statements. Change-Id: Iceb66160cfb571db8879d3810c55d252c763d320 --- pySim/ts_51_011.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 03d74ad6..e4a26a3c 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -527,12 +527,10 @@ class EF_xPLMNwAcT(TransRecEF): if 'cdma2000 1xRTT' in in_list: u16 |= 0x0010 # E-UTRAN - if 'E-UTRAN WB-S1' and 'E-UTRAN NB-S1' in in_list: - u16 |= 0x7000 # WB-S1 and NB-S1 - elif 'E-UTRAN NB-S1' in in_list: - u16 |= 0x6000 # only WB-S1 - elif 'E-UTRAN NB-S1' in in_list: - u16 |= 0x5000 # only NB-S1 + if 'E-UTRAN WB-S1' in in_list: + u16 |= 0x6000 + if 'E-UTRAN NB-S1' in in_list: + u16 |= 0x5000 # GSM mess if 'GSM' in in_list and 'EC-GSM-IoT' in in_list: u16 |= 0x008C