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