From 18fbfed91f426206860227ca32fab4283f998451 Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Fri, 27 Dec 2013 20:01:43 +0000 Subject: [PATCH] ENH: error handling on re.group KeyError exception only for PyPy --- fail2ban/server/failregex.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fail2ban/server/failregex.py b/fail2ban/server/failregex.py index ba176ceb..d3299144 100644 --- a/fail2ban/server/failregex.py +++ b/fail2ban/server/failregex.py @@ -21,7 +21,7 @@ __author__ = "Cyril Jaquier" __copyright__ = "Copyright (c) 2004 Cyril Jaquier" __license__ = "GPL" -import re, sre_constants +import re, sre_constants, sys ## # Regular expression class. @@ -136,8 +136,12 @@ class Regex: if self._matchCache.group("skiplines%i" % n) is not None: skippedLines += self._matchCache.group("skiplines%i" % n) n += 1 + except IndexError: + break # KeyError is because of PyPy issue1665 affecting pypy <= 2.2.1 - except (IndexError, KeyError): + except KeyError: + if 'PyPy' not in sys.version: # pragma: no cover - not sure this is even reachable + raise break return skippedLines.splitlines(False)