Fix infinite loop in should_ignore_path for absolute paths.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
Daira Hopwood 2015-10-22 14:28:26 +01:00
parent c24d92937e
commit f11ba5d878
1 changed files with 7 additions and 1 deletions

View File

@ -2,7 +2,7 @@
import re
import os.path
from allmydata.util.assertutil import precondition
from allmydata.util.assertutil import precondition, _assert
def path2magic(path):
return re.sub(ur'[/@]', lambda m: {u'/': u'@_', u'@': u'@@'}[m.group(0)], path)
@ -20,8 +20,14 @@ def should_ignore_file(path_u):
for suffix in IGNORE_SUFFIXES:
if path_u.endswith(suffix):
return True
while path_u != u"":
oldpath_u = path_u
path_u, tail_u = os.path.split(path_u)
if tail_u.startswith(u"."):
return True
if path_u == oldpath_u:
return True # the path was absolute
_assert(len(path_u) < len(oldpath_u), path_u=path_u, oldpath_u=oldpath_u)
return False