From 3aec87197848646f751c8825dabda6084e5ad88e Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Tue, 9 Mar 2021 21:49:01 +0100 Subject: [PATCH] filesystem: be more strict in method add_file() The file identifier of a file is strictly defined as a two digit hexadecimal number. Do not allow adding child files that violate this constraint. Change-Id: I096907285b742e611d221b03ba067ea2522e7e52 Related: OS#4963 --- pySim/filesystem.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pySim/filesystem.py b/pySim/filesystem.py index d4688084..f6dddb68 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -31,7 +31,7 @@ import cmd2 from cmd2 import CommandSet, with_default_category, with_argparser import argparse -from pySim.utils import sw_match, h2b, b2h +from pySim.utils import sw_match, h2b, b2h, is_hex from pySim.exceptions import * class CardFile(object): @@ -144,6 +144,8 @@ class CardDF(CardFile): """Add a child (DF/EF) to this DF""" if not isinstance(child, CardFile): raise TypeError("Expected a File instance") + if not is_hex(child.fid, minlen = 4, maxlen = 4): + raise ValueError("File name %s is not a valid fid" % (child.fid)) if child.name in CardFile.RESERVED_NAMES: raise ValueError("File name %s is a reserved name" % (child.name)) if child.fid in CardFile.RESERVED_FIDS: