.
Last update: 1997-05-20
9945-2-18 Class: Editorial defect _____________________________________________________________________________ Topic: pax Relevant Sections: 4.48.2 Defect Report: ----------------------- In Section 4.48.2 - Description {of pax}, the standard states that ``[i]f an extracted file is of type directory, the file hierarchy rooted at that file shall be extracted as well.'' [Draft 12 of ISO/IEC 9945-2:1993 (July 1992), p. 400, lines 7703-7705] And then: if intermediate directories are necessary to extract an archive member, pax shall perform actions equivalent to the POSIX.1 {8} mkdir() function, called with the following arguments: - The intermediate directory used as the path argument. - The value of the bitwise inclusive OR of S_IRWXU, S_IRWXG, and S_IRWXO as the mode argument. [Ibid., p. 401, lines 7728-7733] Assuming you have a ustar archive with the following members foo/bar and foo/blat, and you extract them using the command ``pax -r foo <paxfile.'' Now, if I extract foo/bar and foo/blat explicitly, everything is fine because directory foo is created with execute permissions. However, if I extract only foo (and thus its descendants as well), I run into problems because without the -p e or -p p flags set, the execute permissions will not be set on directory foo: ``[...] otherwise, the attribute shall be determined as part of the normal file creation action (see 2.9.1.4).'' [Ibid., p. 403, lines 7819-7821] In Section 2.9.1.4 - File Read, Write and Creation, the standard states that: the file's permission bits are set to: S_IROTH|S_IWOTH|S_IRGRP|S_IWGRP|S_IRUSR|S_IWUSR (see POSIX.1 {8} 5.6.1.2) except that the bits specified by the process's file mode creation mask are cleared. [Ibid., p. 96, lines 3424-3427] In this section, directories are not treated differently than regular files. The mkdir utility explicitly adds the needed execute permissions, as does pax on intermediate directories. Is the ``spirit'' of the standard to create explicitly-named directories in this manner, or may they have their execute permissions set? WG15 response for 9945-2:1993 ----------------------------------- The standard does not require that the directory have the mode specified until after pax has exited. This allows the implementation to leave a more useful mode in place until it completes it processing, then change it to the specified mode. See Section E.4.48. Concern over the wording of this section of the standard has been forwarded to the Sponsors of the standard. Rationale for Interpretation: ----------------------------- None. _____________________________________________________________________________