View Issue Details

IDProjectCategoryView StatusLast Update
00000631003.1(2008)/Issue 7System Interfacespublic2013-04-16 13:06
Reportermsbrown Assigned Toajosey  
PrioritynormalSeverityCommentTypeError
Status ClosedResolutionAccepted 
NameMark Brown
OrganizationIBM
User Reference
Sectionfutimens
Page Number969
Line Number32433
Interp StatusApproved
Final Accepted Text0000063:0000229
Summary0000063: EPERM error under futimens() appears to be faulty
DescriptionCOMMENT 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 ActionReplace 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.
Tagstc1-2008

Activities

ajosey

2009-09-17 15:16

manager   bugnote:0000229

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

Issue History

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 Don Cragun 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