Issue 9835: ZipFile unix external attributes incorrect for entry written with writestr (original) (raw)

Created on 2010-09-11 12:11 by Thomas.Sondergaard, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
test.py Thomas.Sondergaard,2010-09-11 12:11
Messages (4)
msg116093 - (view) Author: Thomas Sondergaard (Thomas.Sondergaard) Date: 2010-09-11 12:11
For entries written with writestr ZipFile doesn't record the file type in the unix external attributes block. It should set it to "regular file" (S_IFREG). The attached sample creates a zip file. If you inspect it with zipinfo -v, you will see that the unix file type is not correct for the entry stored with writestr. [ts@roadrunner ~]$ zipinfo -v test.zip |grep "Unix file attributes" Unix file attributes (000600 octal): ?rw------- Unix file attributes (100664 octal): -rw-rw-r--
msg116098 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2010-09-11 14:21
I'm not very familiar with zipfile, but my immediate reaction is, why should it? It can't know that the file is a unix file, and indeed if the program is running on windows it may not be. Perhaps instead there's something missing in the API to allow you to set the correct value when using writestr?
msg116103 - (view) Author: Thomas Sondergaard (Thomas.Sondergaard) Date: 2010-09-11 15:32
It does know that the entry is a regular file, and that is the bit of information that is missing in the unix external file attributes. Having said that you do have a point - perhaps it shouldn't record unix external file attributes at all, when the entry isn't picked up from the file system. What it does now is to create unix external file attributes that are invalid.
msg116383 - (view) Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) Date: 2010-09-14 11:18
This has already been corrected by , and is at least present in python 2.6.
History
Date User Action Args
2022-04-11 14:57:06 admin set github: 54044
2010-09-14 11🔞39 amaury.forgeotdarc set status: open -> closednosy: + amaury.forgeotdarcmessages: + superseder: zipfile.writestr doesn't set external attributes, so files are extracted mode 000 on Unixresolution: out of date
2010-09-11 15:32:50 Thomas.Sondergaard set messages: +
2010-09-11 14:21:42 r.david.murray set nosy: + r.david.murraymessages: +
2010-09-11 12:11:59 Thomas.Sondergaard create