setuptools.archive_util.unpack_archive dies in case of bad tarball

Hello,
Please see attached tarkill.tar.gz and buildout profile.
This tarball containts dead link: ls -l tarkill lrwxrwxrwx 1 luke users 4 2010-11-18 19:56 kill -> kill
After running attached buildout profile and having python shell setuptools will enter infinite loop:
import sys sys.version_info
sys.version_info(major=2, minor=7, micro=0, releaselevel='final', serial=0)
import tempfile import setuptools.archive_util tempdir = tempfile.mkdtemp() setuptools.archive_util.unpack_archive('tarkill.tar.gz', tempdir)
^CTraceback (most recent call last): File "<console>", line 1, in <module> File "/srv/home/luke/python2.7/setup/eggs/setuptools-0.6c12dev_r85381-py2.7.egg/setuptools/archive_util.py", line 67, in unpack_archive driver(filename, extract_dir, progress_filter) File "/srv/home/luke/python2.7/setup/eggs/setuptools-0.6c12dev_r85381-py2.7.egg/setuptools/archive_util.py", line 190, in unpack_tarfile member = tarobj._getmember(linkpath) File "/srv/home/luke/python2.7/parts/python2.7/lib/python2.7/tarfile.py", line 2357, in _getmember members = self.getmembers() File "/srv/home/luke/python2.7/parts/python2.7/lib/python2.7/tarfile.py", line 1801, in getmembers self._check() KeyboardInterrupt
Attached workaround which breaks the loop, but I think that such deadlink shall be created, just like tar does it.
Regards, Luke
participants (1)
-
Łukasz Nowak