diff --git a/deluge/plugins/blocklist/blocklist/readers.py b/deluge/plugins/blocklist/blocklist/readers.py index 89ebd1559..a520fad3c 100644 --- a/deluge/plugins/blocklist/blocklist/readers.py +++ b/deluge/plugins/blocklist/blocklist/readers.py @@ -34,6 +34,7 @@ # from common import raiseError, remove_zeros +import re class ReaderParseError(Exception): pass @@ -69,6 +70,9 @@ class BaseReader(object): if not self.is_ignored(line): try: (start, end) = self.parse(line) + if not re.match("^(\d{1,3}\.){4}$", start + ".") or \ + not re.match("^(\d{1,3}\.){4}$", end + "."): + valid = False except: valid = False finally: @@ -94,7 +98,7 @@ class SafePeerReader(BaseReader): """Blocklist reader for SafePeer style blocklists""" @raiseError(ReaderParseError) def parse(self, line): - return line.strip().split(":")[1].split("-") + return line.strip().split(":")[-1].split("-") class PeerGuardianReader(SafePeerReader): """Blocklist reader for PeerGuardian style blocklists"""