From 78e32f2b3657fb9c3cb18af35e007820c75f3a9e Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Mon, 22 Mar 2021 20:39:24 +0100 Subject: [PATCH] utils: fix sw_match() The SW_match function takes a given status word and compares it against a pattern that may contain wildcards (x or ?). This works by creating a masked version of the SW using a pattern first (each hex digit is replaced by a wildcard charafter if the pattern has a wildcard in the same position). Once this is done, the resulting masked version is compared at the pattern. However, the current implementation can not work, since it compares the input SW against the pattern to decide wihich chrafters should be masked. The input SW never contains wildcard charafters. Change-Id: I805ad32160fcfcb8628bf919b64f7eee0fe03c7e Related: OS#4963 --- pySim/utils.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pySim/utils.py b/pySim/utils.py index e1fb4c71..0848b016 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -787,12 +787,13 @@ def sw_match(sw, pattern): sw_lower = sw.lower() sw_masked = "" for i in range(0, 4): - if sw_lower[i] == '?': + if pattern[i] == '?': sw_masked = sw_masked + '?' - elif sw_lower[i] == 'x': + elif pattern[i] == 'x': sw_masked = sw_masked + 'x' else: sw_masked = sw_masked + sw_lower[i] + # Compare the masked version against the pattern return sw_masked == pattern def tabulate_str_list(str_list, width = 79, hspace = 2, lspace = 1, align_left = True):