.
Last update: 1997-05-20
9945-2-68
_____________________________________________________________________________
Topic: cp pathname arguments
Relevant Sections: 2.13.1
Defect Report:
-----------------------
(From: fred@mindcraft.com)
-----------------------
Dear Standards Board,
I would like to an request official, binding interpretation
from WG15 concerning the following point in ISO/IEC
9945-2:1993 (POSIX.2).
POSIX.2 defines pathname resolution by reference to POSIX.1
(ISO/IEC 9945-1:1990), and specifically refers to the definition
of PATH_MAX in POSIX.1 (see subclauses 2.2.2.121, 2.2.2.123 and
2.13.1 of POSIX.2). Those utilities specified in POSIX.2 that
take pathname arguments are required to be able to resolve
pathnames that (including an implied trailing null byte) are
no more than PATH_MAX bytes in length, assuming no other system
resource limits arise.
The issue I would like resolved has to do with files that are
implicitly referenced by utilities with pathnames that are
longer than PATH_MAX. Specifically, consider the command line
cp <filename> <dirname>
where <dirname> is a pathname of length PATH_MAX-1 that refers to
a directory, and <filename> names a regular file. The semantics
of the cp utility require that (assuming no access or permission
issues interfere) cp create a copy of <filename> in <dirname>.
No pathname argument exceeds PATH_MAX-1 bytes, However, this
command implies a pathname of the target file, <dirname>/<filename>,
that exceeds PATH_MAX bytes. The reference is somewhat more than
implicit, since the description of cp (POSIX.2 subclause 4.13.2,
lines 2589-2591) states
The cp utility shall copy the contents of each source_file
to the destination path named by the concatenation of
target, a slash character and the last component of
source_file.
Is cp required to work in this case?
Note that a similar question can be asked with respect to the
mv and ln utilities and perhaps others.
Thank you for your attention to this matter.
WG15 response for 9945-2:1993
-----------------------------------
The wording in cp as specified in this interpretation
request clearly allows an implementation of cp to call open with the
pathname created by concatenating dirname, slash("/"), and filename and
in cases where this string is resulted longer than PATH_MAX there is no
requirement that this should succeed.
Rationale for Interpretation:
-----------------------------
None.
_____________________________________________________________________________