Report 0488 Actions
Problem Report Number |
0488 |
Submitter's Classification |
Specification problem |
State |
Resolved |
Resolution |
Rejected (REJ) |
Problem Resolution ID |
REJ.X.0107 |
Raised |
1995-06-21 08:00 |
Updated |
2003-03-13 08:00 |
Published |
null |
Product Standard |
Internationalised System Calls and Libraries (XPG4) |
Certification Program |
The Open Brand certification program |
Test Suite |
VSX4 version 4.3.4 |
Test Identification |
POSIX.os/dataform/tar 31 |
Problem Summary |
PG4R.108 The POSIX.1 and XPG4 standards do not say that the tar utility cannot set a non-zero exit code if it cannot set the user ID of an extracted file to the user ID associated with the file in the tar arch... |
Problem Text |
The POSIX.1 and XPG4 standards do not say that the tar utility cannot set a non-zero exit code if it cannot set the user ID of an extracted file to the user ID associated with the file in the tar archive file.
XPG4 states the following:
"OPERANDS
x Extract the named file or files from the archive. ... If a named file in the archive does not exist on the system, the file is created with the same mode as the one in the archive, except that the set-user-ID and set-group-ID modes are not set unless the user has appropriate privileges. ... The owner, group, and modification times are restored (if possible)."
and:
"EXIT STATUS
0 Successful completion
>0 An error occurred."
If the user does not have the appropriate privileges to set the user and/or group ID of a, our tar utility still restores the file using the caller's user and group id, issues a warning message to stderr, and exits with a status of 1. We believe this behavior is consistent with POSIX.1 and XPG4.
As for whether being able to set the user and/or group ids of a file constitutes an error, we would like to use another utility for an example. The XPG4 standard specifically requires the pax utility to exit with non-zero status if information such as the file's owner cannot be preserved. It's also interesting to note that the exit status definition for pax is virtually identical to that of tar. Since the failure to preserve a user id is considered an error by the pax utility, we believe it's logical for tar to consider it as an error as well.
|
Test Output |
/tset/POSIX.os/dataform/tar/T.tar 31 Unresolved
Test Description: For the extended tar format, the user ID of an extracted file is set to the process's effective user ID when used by a nonprivileged process. Posix Ref: Component Data Interchange Format Assertion 10.1-07(A)
Test Information: deletion reason: format reading utility gave unexpected exit code 1
|
Review Information
Review Type |
TSMA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Recommendation |
No Resolution Given |
Review Response |
The question raised by this request relates to an issue that falls between the definitions of the behaviour required by the archive extracting utility as per POSIX.1 and the specific behaviour required for the extraction of tar format files by the tar utility described in XPG4. The POSIX.1 specification states that for non-privileged extractions, files should be created in the same fashion as creat() would create them when given the mode value aas stored in the archive. POSIX.1 states that the mode bits are ignored in the case that the user does not have appropriate privileges, whereas in other cases POSIX.1 specifies that an error will occur. Thus from the text of POSIX.1 it can be surmised that the archive extracting utility should not indicate an error in these circumstances but simply ignore the setting of the bits.
XPG4 similarly specifies that the mode may not be set as on the archive unless the user has appropriate privileges. It does not specify whether or not the failure to set these bits constitutes an error.
Also, it should be noted that refering to the tar specification in XPG4 may not resolve the problem since this is not defined as the only extracting utility that is available. (pax could also be used).
On balance I do not feel able to recommend that this request for a waiver be granted. The statements in POSIX.1 seem to be sufficient, though not consclusive, in indicating that an error should not be indicated by the extracting function. I would suggest that this waiver is forward to the K/RT group for interpretation.
|
Review Type |
Expert Group Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
No Resolution Given |
Review Conclusion |
The Working Group agrees that this request should be refused.
|
Review Type |
SA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
Rejected (REJ) |
Review Conclusion |
This request is refused.
|
Problem Reporting System Options:
|