On 01/15/2013 10:44 AM, Bob Proulx wrote: > Jim Meyering wrote: >> Pádraig Brady wrote: >>> Interestingly I notice that solaris for example allows a NULL old_path. >> >> That Solaris behavior is contrary to POSIX 2008 >> http://pubs.opengroup.org/onlinepubs/9699919799/functions/symlink.html > > Where does it say this? I read it through in detail but I didn't see > that it required a diagnostic to be emitted in the case that value is > am empty string. What did I miss?
Right, the only 3 statements about path1 are: * The string pointed to by path1 shall be treated only as a character string and shall not be validated as a pathname. * [ENAMETOOLONG] [...] or the length of the path1 argument is longer than {SYMLINK_MAX}. * [...] in fact, the file named by the path1 argument need not exist when the link is created. I'd read this as: a) there can be any character in the string but a NULL (obviously). b) the maximum length is limited to SYMLINK_MAX. Nothing more. BUT: Some CU tools already catch zero-length file names (du and wc), and a comment in the code states that FTS has problems with it [src/du.c:1043]: /* Report and skip any empty file names before invoking fts. This works around a glitch in fts, which fails immediately (without looking at the other file names) when given an empty file name. */ Have a nice day, Berny