Issue 1167128: Tar file symbolic link bug fix (original) (raw)

Created on 2005-03-20 20:14 by ellers88, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
tarfile.patch ellers88,2005-03-20 20:14 Patch file
Messages (5)
msg48018 - (view) Author: Ellers (ellers88) Date: 2005-03-20 20:14
OS: linux If you use tarfile.py to create a tarfile with a symbolic link followed by a regular file, then use gnu tar to list the contents you will see: tar tvf archives/test1.my.tar lrwxrwxrwx andrew/dev 3 2005-03-20 16:00:35 barlink -> bar tar: Skipping to next header tar: Error exit delayed from previous errors I have traced the problem down to the size field in the tar header being set to the length of the link target name, not zero as it should be. I have put an extended description and proof of this at: http://software.ellerton.net/supertar/README.txt http://software.ellerton.net/supertar/PythonTarPatchProof.tar The patch file attached fixes this by setting size == 0 if filetype == SYMLINK, and verified this works perfectly on linux. CAUTION: I don't know, though I can fairly safely assume, that this will work also on other unix's. (Shameless plug: this is where the supertar utility is/will be: http://software.ellerton.net/supertar/ )
msg48019 - (view) Author: Lars Gustäbel (lars.gustaebel) * (Python committer) Date: 2005-03-22 19:21
Logged In: YES user_id=642936 The size for a non-regular file is already set to zero but at the wrong place. It is currently done in the add() method and not in gettarinfo() as it should be. Since you use the addfile() and gettarinfo() methods in your test script, you get unwanted results. I submitted patch #1168594 that fixes the whole problem in a more generic way and is closely related to the fix for bug #1031148 from last year.
msg48020 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2005-03-22 19:47
Logged In: YES user_id=21627 Following gustaebel's recommendation, I reject this patch, and will accept 1168594 instead.
msg48021 - (view) Author: Ellers (ellers88) Date: 2005-03-22 21:10
Logged In: YES user_id=1046139 I don't mind which patch is accepted, so long as all uses where a symlink is added results in the correct result, i.e. size==0 :)
msg48022 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2005-08-27 10:10
Logged In: YES user_id=21627 I have now committed #1168594, both for 2.4 and 2.5.
History
Date User Action Args
2022-04-11 14:56:10 admin set github: 41729
2005-03-20 20:14:59 ellers88 create