Issue #8833: tarfile created hard link entries with a size
field != 0 by mistake. The associated testcase did not
expose this bug because it was broken too.
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
index 52d6ab3..0d58cda 100644
--- a/Lib/test/test_tarfile.py
+++ b/Lib/test/test_tarfile.py
@@ -662,10 +662,14 @@
if hasattr(os, "link"):
link = os.path.join(TEMPDIR, "link")
target = os.path.join(TEMPDIR, "link_target")
- open(target, "wb").close()
+ fobj = open(target, "wb")
+ fobj.write("aaa")
+ fobj.close()
os.link(target, link)
try:
tar = tarfile.open(tmpname, self.mode)
+ # Record the link target in the inodes list.
+ tar.gettarinfo(target)
tarinfo = tar.gettarinfo(link)
self.assertEqual(tarinfo.size, 0)
finally: