From bbca81f34cb8104a71f6508dba4c7e2d776ac7fe Mon Sep 17 00:00:00 2001 From: sebres Date: Tue, 22 Aug 2023 14:06:04 +0200 Subject: [PATCH] `splitwords` (used by ignoreip etc) considers now any kind of space as valid separator (also tabs) besides comma; closes gh-3562 --- fail2ban/helpers.py | 2 +- fail2ban/tests/misctestcase.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/fail2ban/helpers.py b/fail2ban/helpers.py index fa16693a..c2c22a27 100644 --- a/fail2ban/helpers.py +++ b/fail2ban/helpers.py @@ -284,7 +284,7 @@ def splitwords(s): """ if not s: return [] - return list(filter(bool, [v.strip() for v in re.split('[ ,\n]+', s)])) + return list(filter(bool, [v.strip() for v in re.split('[\s,]+', s)])) def _merge_dicts(x, y): """Helper to merge dicts. diff --git a/fail2ban/tests/misctestcase.py b/fail2ban/tests/misctestcase.py index d91729fb..b0e29fb0 100644 --- a/fail2ban/tests/misctestcase.py +++ b/fail2ban/tests/misctestcase.py @@ -66,8 +66,7 @@ class HelpersTest(unittest.TestCase): self.assertEqual(splitwords(' 1, 2 , '), ['1', '2']) self.assertEqual(splitwords(' 1\n 2'), ['1', '2']) self.assertEqual(splitwords(' 1\n 2, 3'), ['1', '2', '3']) - # string as unicode: - self.assertEqual(splitwords(' 1\n 2, 3'), ['1', '2', '3']) + self.assertEqual(splitwords('\t1\t 2,\r\n 3\n'), ['1', '2', '3']); # other spaces def _sh_call(cmd):