# HG changeset patch # Parent 5b88475aae96683280d3ad27bb82b41bc7a2922d Issue #14160: TarFile.extractfile() failed to resolve symbolic links when the link was not located in an archive subdirectory. diff --git a/Lib/tarfile.py b/Lib/tarfile.py --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -2496,7 +2496,7 @@ """ if tarinfo.issym(): # Always search the entire archive. - linkname = os.path.dirname(tarinfo.name) + "/" + tarinfo.linkname + linkname = "/".join(filter(None, (os.path.dirname(tarinfo.name), tarinfo.linkname))) limit = None else: # Search the archive before the link, because a hard link is diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -166,6 +166,9 @@ def test_fileobj_symlink2(self): self._test_fileobj_link("./ustar/linktest2/symtype", "ustar/linktest1/regtype") + def test_issue14160(self): + self._test_fileobj_link("symtype2", "ustar/regtype") + class CommonReadTest(ReadTest): diff --git a/Lib/test/testtar.tar b/Lib/test/testtar.tar index b93210453d132cf0db07ab26cb50d06f83ee579a..bb9345373e9701b01f16b70844445dfe1863abc6 GIT binary patch literal 435200 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 z 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 diff --git a/Misc/NEWS b/Misc/NEWS --- a/Misc/NEWS +++ b/Misc/NEWS @@ -130,6 +130,9 @@ Library ------- +- Issue #14160: TarFile.extractfile() failed to resolve symbolic links when + the link was not located in an archive subdirectory. + - Issue #14195: An issue that caused weakref.WeakSet instances to incorrectly return True for a WeakSet instance 'a' in both 'a < a' and 'a > a' has been fixed.