Fix infinite loop in should_ignore_path for absolute paths.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
parent
c24d92937e
commit
f11ba5d878
|
@ -2,7 +2,7 @@
|
||||||
import re
|
import re
|
||||||
import os.path
|
import os.path
|
||||||
|
|
||||||
from allmydata.util.assertutil import precondition
|
from allmydata.util.assertutil import precondition, _assert
|
||||||
|
|
||||||
def path2magic(path):
|
def path2magic(path):
|
||||||
return re.sub(ur'[/@]', lambda m: {u'/': u'@_', u'@': u'@@'}[m.group(0)], 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:
|
for suffix in IGNORE_SUFFIXES:
|
||||||
if path_u.endswith(suffix):
|
if path_u.endswith(suffix):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
while path_u != u"":
|
while path_u != u"":
|
||||||
|
oldpath_u = path_u
|
||||||
path_u, tail_u = os.path.split(path_u)
|
path_u, tail_u = os.path.split(path_u)
|
||||||
if tail_u.startswith(u"."):
|
if tail_u.startswith(u"."):
|
||||||
return True
|
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
|
return False
|
||||||
|
|
Loading…
Reference in New Issue