]> git.ipfire.org Git - ipfire-2.x.git/blob - src/patches/fireinfo/0002-Escape-any-non-printable-ascii-characters.patch
Merge remote-tracking branch 'ms/dhcp-rfc2136-broken-down' into next
[ipfire-2.x.git] / src / patches / fireinfo / 0002-Escape-any-non-printable-ascii-characters.patch
1 From 4468fb2eb49e21d2350f6619584e6816f5159d29 Mon Sep 17 00:00:00 2001
2 From: Michael Tremer <michael.tremer@ipfire.org>
3 Date: Sat, 28 Mar 2015 13:17:57 +0100
4 Subject: [PATCH 2/5] Escape any non-printable ascii characters
5
6 http://forum.ipfire.org/viewtopic.php?f=5&t=12970
7 ---
8 src/fireinfo/system.py | 18 ++++++++++++++----
9 1 file changed, 14 insertions(+), 4 deletions(-)
10
11 diff --git a/src/fireinfo/system.py b/src/fireinfo/system.py
12 index 9d7872822b85..4148c66eded7 100644
13 --- a/src/fireinfo/system.py
14 +++ b/src/fireinfo/system.py
15 @@ -325,6 +325,16 @@ class System(object):
16
17 return v, m
18
19 + @staticmethod
20 + def escape_string(s):
21 + """
22 + Will remove all non-printable characters from the given string
23 + """
24 + if s is None:
25 + return
26 +
27 + return filter(lambda x: x in string.printable, s)
28 +
29 @property
30 def vendor(self):
31 """
32 @@ -334,14 +344,14 @@ class System(object):
33 for file in ("sys_vendor", "board_vendor", "chassis_vendor",):
34 ret = read_from_file(os.path.join(SYS_CLASS_DMI, file))
35 if ret:
36 - return ret
37 + return self.escape_string(ret)
38
39 if os.path.exists("/proc/device-tree"):
40 ret = self.__cpuinfo.get("Hardware", None)
41 else:
42 ret, m = self.vendor_model_tuple()
43
44 - return ret
45 + return self.escape_string(ret)
46
47 @property
48 def model(self):
49 @@ -352,7 +362,7 @@ class System(object):
50 for file in ("product_name", "board_model", "chassis_model",):
51 ret = read_from_file(os.path.join(SYS_CLASS_DMI, file))
52 if ret:
53 - return ret
54 + return self.escape_string(ret)
55
56 # Read device-tree model if available
57 ret = read_from_file("/proc/device-tree/model")
58 @@ -364,7 +374,7 @@ class System(object):
59 if not ret:
60 v, ret = self.vendor_model_tuple()
61
62 - return ret
63 + return self.escape_string(ret)
64
65 @property
66 def memory(self):
67 --
68 2.4.3
69