]> git.ipfire.org Git - oddments/fireinfo.git/commitdiff
Escape any non-printable ascii characters
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 28 Mar 2015 12:17:57 +0000 (13:17 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 28 Mar 2015 12:17:57 +0000 (13:17 +0100)
http://forum.ipfire.org/viewtopic.php?f=5&t=12970

src/fireinfo/system.py

index 9d7872822b8515122aab8440146328259c51b8e4..4148c66eded74090883f906a896ce21ce5f14576 100644 (file)
@@ -325,6 +325,16 @@ class System(object):
 
                return v, m
 
+       @staticmethod
+       def escape_string(s):
+               """
+                       Will remove all non-printable characters from the given string
+               """
+               if s is None:
+                       return
+
+               return filter(lambda x: x in string.printable, s)
+
        @property
        def vendor(self):
                """
@@ -334,14 +344,14 @@ class System(object):
                for file in ("sys_vendor", "board_vendor", "chassis_vendor",):
                        ret = read_from_file(os.path.join(SYS_CLASS_DMI, file))
                        if ret:
-                               return ret
+                               return self.escape_string(ret)
 
                if os.path.exists("/proc/device-tree"):
                        ret = self.__cpuinfo.get("Hardware", None)
                else:
                        ret, m = self.vendor_model_tuple()
 
-               return ret
+               return self.escape_string(ret)
 
        @property
        def model(self):
@@ -352,7 +362,7 @@ class System(object):
                for file in ("product_name", "board_model", "chassis_model",):
                        ret = read_from_file(os.path.join(SYS_CLASS_DMI, file))
                        if ret:
-                               return ret
+                               return self.escape_string(ret)
 
                # Read device-tree model if available
                ret = read_from_file("/proc/device-tree/model")
@@ -364,7 +374,7 @@ class System(object):
                if not ret:
                        v, ret = self.vendor_model_tuple()
 
-               return ret
+               return self.escape_string(ret)
 
        @property
        def memory(self):