From: Zac Medico Date: Sun, 18 Mar 2007 07:40:11 +0000 (-0000) Subject: Never use listdir with both recursion=True and followSymlinks=True since it circular... X-Git-Tag: v2.2_pre1~1563 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=fe27c41995ff9c58eb95d015bbcd19d2d2b44039;p=portage.git Never use listdir with both recursion=True and followSymlinks=True since it circular symlinks will lead to endless recursion loops. Thanks to Tobias Hahn for this patch. svn path=/main/trunk/; revision=6242 --- diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index e658d6378..757397364 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -1423,14 +1423,14 @@ class dblink(object): # Preserve old libs if they are still in use if slot_matches and "preserve-libs" in self.settings.features: - myfilelist = listdir(srcroot, recursive=1, filesonly=1, followSymlinks=True) + myfilelist = listdir(srcroot, recursive=1, filesonly=1, followSymlinks=False) mylinklist = filter(os.path.islink, listdir(srcroot, recursive=1, filesonly=0, followSymlinks=False)) self._preserve_libs(srcroot, destroot, myfilelist+mylinklist) # check for package collisions if "collision-protect" in self.settings.features: if myfilelist == None: - myfilelist = listdir(srcroot, recursive=1, filesonly=1, followSymlinks=True) + myfilelist = listdir(srcroot, recursive=1, filesonly=1, followSymlinks=False) if mylinklist == None: mylinklist = filter(os.path.islink, listdir(srcroot, recursive=1, filesonly=0, followSymlinks=False)) self._collision_protect(srcroot, destroot, otherversions, myfilelist+mylinklist, mylinklist)