From b8f0ce7155c4a9748c6e49e9678a8d9e65735400 Mon Sep 17 00:00:00 2001 From: Cyril Jaquier Date: Sat, 23 Dec 2006 23:20:16 +0000 Subject: [PATCH] - Do not accept empty regular expression - Do not send an empty string if the option is not defined git-svn-id: https://fail2ban.svn.sourceforge.net/svnroot/fail2ban/trunk@505 a942ae1a-1317-0410-a47c-b1dcaea8d605 --- client/filterreader.py | 8 ++++++-- client/jailreader.py | 4 +++- server/regex.py | 2 ++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/client/filterreader.py b/client/filterreader.py index 30cca818..4bb36fda 100644 --- a/client/filterreader.py +++ b/client/filterreader.py @@ -68,9 +68,13 @@ class FilterReader(ConfigReader): stream.append(["set", self.__name, "timepattern", self.__opts[opt]]) elif opt == "failregex": for regex in self.__opts[opt].split('\n'): - stream.append(["set", self.__name, "addfailregex", regex]) + # Do not send a command if the rule is empty. + if regex != '': + stream.append(["set", self.__name, "addfailregex", regex]) elif opt == "ignoreregex": for regex in self.__opts[opt].split('\n'): - stream.append(["set", self.__name, "addignoreregex", regex]) + # Do not send a command if the rule is empty. + if regex != '': + stream.append(["set", self.__name, "addignoreregex", regex]) return stream \ No newline at end of file diff --git a/client/jailreader.py b/client/jailreader.py index bb408876..aa26d789 100644 --- a/client/jailreader.py +++ b/client/jailreader.py @@ -112,7 +112,9 @@ class JailReader(ConfigReader): stream.append(["set", self.__name, "maxretry", self.__opts[opt]]) elif opt == "ignoreip": for ip in self.__opts[opt].split(): - stream.append(["set", self.__name, "addignoreip", ip]) + # Do not send a command if the rule is empty. + if ip != '': + stream.append(["set", self.__name, "addignoreip", ip]) elif opt == "findtime": stream.append(["set", self.__name, "findtime", self.__opts[opt]]) elif opt == "bantime": diff --git a/server/regex.py b/server/regex.py index c4e9c8ec..d3d6eee4 100644 --- a/server/regex.py +++ b/server/regex.py @@ -42,6 +42,8 @@ class Regex: def __init__(self, regex): self._matchCache = None + if regex.lstrip() == '': + raise RegexException("Cannot add empty regex") try: self._regexObj = re.compile(regex) self._regex = regex