View Issue Details

IDProjectCategoryView StatusLast Update
00005411003.1(2008)/Issue 7Base Definitions and Headerspublic2019-06-10 08:55
Reportereblake Assigned Toajosey  
PrioritynormalSeverityObjectionTypeError
Status ClosedResolutionAccepted 
NameEric Blake
OrganizationRed Hat
User Referenceebb.pathname_resolution
Section4.12 Pathname Resolution
Page Number112
Line Number3026
Interp StatusApproved
Final Accepted TextSee 0000541:0001119
Summary0000541: pathname resolution of a symlink containing exactly //
DescriptionThe specified behavior of 'ln -s // double && ls -d double/dev' is that
the resolution should prefix the remaining pathname '/dev' by the
contents of the symlink '//', for an invocation of 'ls -d ///dev',
which must behave like 'ls -d /dev'. But this is at odds with other
statements in the standard for handling // in an implementation-defined
manner. On the Cygwin environment (which isn't quite POSIX, but which
does try to exploit the POSIX rule of having // be separate from /),
pathname resolution of a symlink to either type of root directory elides
all leading slashes from the remainder of the pathname; this behavior
should be standardized.

With the proposed change, it becomes clear that 'double///dev' forms
the pathname '//dev', and not '/////dev' (aka '/dev/'), for further
resolution.

In the case of trailing slashes with a non-slash also in the symlink
contents, the standard is clear that the extra slashes from the
symlink contents and the rest of the pathname to be resolved will
be treated as if they were a single slash, except for the slight
possibility of an ENAMETOOLONG error if too many consecutive
slashes appear. I did not think it worth trying to require
implementations to elide these extra slashes in an effort to avoid
ENAMETOOLONG errors.
Desired ActionAt line 3026 [XBD 4.12 Pathname Resolution], after:

In all other cases, the system shall prefix the remaining pathname, if
any, with the contents of the symbolic link.

add:

If the contents of the symbolic link consist solely of <slash>
characters, then all leading <slash> characters of the remaining
pathname shall be omitted from the resulting combined pathname, leaving
only the leading <slash> characters from the symbolic link contents.
Tagstc2-2008

Relationships

related to 0000083 Closedajosey requirements for pathnames beginning with 2 slashes are too loose 
related to 0000649 Closedajosey pathname resolution of symlink to empty string 

Activities

Don Cragun

2012-02-09 17:40

manager   bugnote:0001119

Last edited: 2012-02-09 17:42

Interpretation response
------------------------
The standard states that the characters in a symlink are prepended to the remainder of the pathname being resolved, and conforming implementations must conform to this. However, concerns have been raised about this which are being referred to the sponsor.

Rationale:
-------------
This is not historic practice on implementation that support //hostname as a special case in pathname resolution. For implementation that don't treat // as special, this change has no effect on pathname resolution. Therefore, this change seems suitable as a technical corrigenda fix.

Notes to the Editor (not part of this interpretation):
-------------------------------------------------------
Make the changes listed in the Desired Action.

ajosey

2012-06-29 16:15

manager   bugnote:0001289

Interpretation proposed 29 June 2012 for final 45 day review

ajosey

2012-08-30 09:14

manager   bugnote:0001352

Interpretation approved 30 Aug 2012

Issue History

Date Modified Username Field Change
2012-02-07 00:11 eblake New Issue
2012-02-07 00:11 eblake Status New => Under Review
2012-02-07 00:11 eblake Assigned To => ajosey
2012-02-07 00:11 eblake Name => Eric Blake
2012-02-07 00:11 eblake Organization => Red Hat
2012-02-07 00:11 eblake User Reference => ebb.pathname_resolution
2012-02-07 00:11 eblake Section => 4.12 Pathname Resolution
2012-02-07 00:11 eblake Page Number => 112
2012-02-07 00:11 eblake Line Number => 3026
2012-02-07 00:11 eblake Interp Status => ---
2012-02-09 17:24 eblake Relationship added related to 0000083
2012-02-09 17:40 Don Cragun Interp Status --- => Pending
2012-02-09 17:40 Don Cragun Note Added: 0001119
2012-02-09 17:40 Don Cragun Status Under Review => Resolved
2012-02-09 17:40 Don Cragun Resolution Open => Accepted
2012-02-09 17:40 Don Cragun Desired Action Updated
2012-02-09 17:40 Don Cragun Tag Attached: tc2-2008
2012-02-09 17:41 Don Cragun Final Accepted Text => See 0000541:0001119
2012-02-09 17:42 Don Cragun Note Edited: 0001119
2012-02-09 17:42 Don Cragun Status Resolved => Interpretation Required
2012-06-29 16:15 ajosey Interp Status Pending => Proposed
2012-06-29 16:15 ajosey Note Added: 0001289
2012-08-30 09:14 ajosey Interp Status Proposed => Approved
2012-08-30 09:14 ajosey Note Added: 0001352
2013-01-24 15:38 eblake Relationship added related to 0000649
2019-06-10 08:55 agadmin Status Interpretation Required => Closed