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
6 http://forum.ipfire.org/viewtopic.php?f=5&t=12970
8 src/fireinfo/system.py | 18 ++++++++++++++----
9 1 file changed, 14 insertions(+), 4 deletions(-)
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):
20 + def escape_string(s):
22 + Will remove all non-printable characters from the given string
27 + return filter(lambda x: x in string.printable, s)
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))
37 + return self.escape_string(ret)
39 if os.path.exists("/proc/device-tree"):
40 ret = self.__cpuinfo.get("Hardware", None)
42 ret, m = self.vendor_model_tuple()
45 + return self.escape_string(ret)
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))
54 + return self.escape_string(ret)
56 # Read device-tree model if available
57 ret = read_from_file("/proc/device-tree/model")
58 @@ -364,7 +374,7 @@ class System(object):
60 v, ret = self.vendor_model_tuple()
63 + return self.escape_string(ret)