View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000063 | 1003.1(2008)/Issue 7 | System Interfaces | public | 2009-06-26 14:14 | 2013-04-16 13:06 |
| Reporter | msbrown | Assigned To | ajosey | ||
| Priority | normal | Severity | Comment | Type | Error |
| Status | Closed | Resolution | Accepted | ||
| Name | Mark Brown | ||||
| Organization | IBM | ||||
| User Reference | |||||
| Section | futimens | ||||
| Page Number | 969 | ||||
| Line Number | 32433 | ||||
| Interp Status | Approved | ||||
| Final Accepted Text | 0000063:0000229 | ||||
| Summary | 0000063: EPERM error under futimens() appears to be faulty | ||||
| Description | COMMENT Enhancement Request Number 1 michael.kerrisk:xxxxxxxxx Bug in XSHd5 futimens (rdvk# 1) {utimensat-errs} Wed, 14 May 2008 22:43:49 +0100 (BST) --------------------- The text describing the EPERM error under futimens() appears to be faulty. Consider the following table, which describes the three parameters affecting the success or failure of these interfaces. In the table, the columns are: [a] Is the time argument NULL (or in the case of futimens() and utimnensat() points to a structure in which both fields are UTIME_NOW or both are UTIME_OMIT), or does it point to a structure containing timestamps? [b] Does the caller's effective UID match the owner of the file? [c] Is the file writable by the caller's effective UID? [a] [b] [c] times file file arg. UID is NULL owner writable Result !NULL !owner !writable N o w success N o !w success N ! w success N !o !w EACCES [1] !N o w success !N o !w success !N !o w EPERM [2] !N !o !w EPERM [3] The fourth column shows the expected result of calling the interface. However, the text describing the errors does not cover all three error cases above: Error case [1] is covered by the EACCES description: [EACCES] The times argument is a null pointer, or both tv_nsec values are UTIME_NOW, and the effective user ID of the process does not match the owner of the file and write access is denied. Error case [2] is covered by the EPERM description: [EPERM] The times argument is not a null pointer, does not have both tv_nsec fields set to UTIME_NOW, does not have both tv_nsec fields set to UTIME_OMIT, the calling process effective user ID has write access to the file but does not match the owner of the file, and the calling process does not have appropriate privileges. Error case [3] is not covered by either of the above descriptions. Lines 32400-32403 of the draft say : Only a process with the effective user ID equal to the user ID of the file or with appropriate privileges may use futimens() or utimensat() with a non-null times argument that does not have both tv_nsec fields set to UTIME_NOW and does not have both tv_nsec fields set to UTIME_OMIT. Looking at these lines suggests that the text for the EPERM error should remove discussion of write access to the file, since the error applies regardless of whether the file is writable. | ||||
| Desired Action | Replace lines 32431 to 32435 with the following: [EPERM] The times argument is not a null pointer, does not have both tv_nsec fields set to UTIME_NOW, does not have both tv_nsec fields set to UTIME_OMIT, the calling process effective user ID does not match the owner of the file, and the calling process does not have appropriate privileges. | ||||
| Tags | tc1-2008 | ||||
|
|
Interpretation response ------------------------ The standard is unclear on this issue, and no conformance distinction can be made between alternative implementations based on this. This is being referred to the sponsor. Rationale: ------------- None. Notes to the Editor (not part of this interpretation): ------------------------------------------------------- Make the change suggested by the submitter |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2009-06-26 14:14 | msbrown | New Issue | |
| 2009-06-26 14:14 | msbrown | Status | New => Under Review |
| 2009-06-26 14:14 | msbrown | Assigned To | => ajosey |
| 2009-06-26 14:14 | msbrown | Name | => Mark Brown |
| 2009-06-26 14:14 | msbrown | Organization | => IBM |
| 2009-06-26 14:14 | msbrown | Section | => futimens |
| 2009-06-26 14:14 | msbrown | Page Number | => 969 |
| 2009-06-26 14:14 | msbrown | Line Number | => 32433 |
| 2009-06-26 14:15 | msbrown | Status | Under Review => Resolved |
| 2009-06-26 14:15 | msbrown | Resolution | Open => Accepted |
| 2009-07-30 16:26 | msbrown | Status | Resolved => Interpretation Required |
| 2009-07-30 16:26 | msbrown | Description Updated | |
| 2009-08-11 16:27 |
|
Interp Status | => Pending |
| 2009-09-17 15:16 | ajosey | Note Added: 0000229 | |
| 2009-09-17 15:17 | ajosey | Final Accepted Text | => 0000063:0000229 |
| 2009-09-17 15:41 | nick | Interp Status | Pending => Proposed |
| 2009-10-09 16:29 | ajosey | Interp Status | Proposed => Approved |
| 2010-09-20 09:09 | geoffclare | Tag Attached: tc1-2008 | |
| 2013-04-16 13:06 | ajosey | Status | Interpretation Required => Closed |