From ff6e65737413d54b6f6964f72827a92fdbecc182 Mon Sep 17 00:00:00 2001 From: Eric Garver Date: Fri, 8 Jan 2021 13:38:15 -0500 Subject: [PATCH 68/68] fix(rich): limit table to strip non-printables to C0 and C1 Generating the table was taking an unreasonable amount of memory. Stripping C0 and C1 should cover most scenarios while limiting memory usage. Fixes: ac5960856991 ("fix(rich): non-printable characters removed from rich rules") (cherry picked from commit 015704b44f81d535a868fe28368f977cefd28638) (cherry picked from commit 629a53ef027146f8e4e486c40c8bde04cda830d3) --- src/firewall/functions.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/firewall/functions.py b/src/firewall/functions.py index d20b702e047e..1ea9f4309234 100644 --- a/src/firewall/functions.py +++ b/src/firewall/functions.py @@ -43,7 +43,12 @@ from firewall.config import FIREWALLD_TEMPDIR, FIREWALLD_PIDFILE PY2 = sys.version < '3' NOPRINT_TRANS_TABLE = { - i: None for i in range(0, sys.maxunicode + 1) if not chr(i).isprintable() + # Limit to C0 and C1 code points. Building entries for all unicode code + # points requires too much memory. + # C0 = [0, 31] + # C1 = [127, 159] + # + i: None for i in range(0, 160) if not (i > 31 and i < 127) } def getPortID(port): -- 2.27.0