diff options
author | emaste <emaste@FreeBSD.org> | 2012-09-12 17:05:39 +0000 |
---|---|---|
committer | emaste <emaste@FreeBSD.org> | 2012-09-12 17:05:39 +0000 |
commit | 87d02085acfe4d673982fe13086761818cc076a4 (patch) | |
tree | b6b299860f16d820a3d00f3076e8c0cf3ae67e50 /lib/libc | |
parent | f6e6da92204f6586187b9a99d6d9e1e133ad995c (diff) | |
download | FreeBSD-src-87d02085acfe4d673982fe13086761818cc076a4.zip FreeBSD-src-87d02085acfe4d673982fe13086761818cc076a4.tar.gz |
Avoid mapping ENOENT to ENOTDIR for non-existent path components.
The ENOTDIR mapping was introduced in r235266 for kern/128933 based on
an interpretation of the somewhat ambiguous language in the POSIX realpath
specification. The interpretation is inconsistent with Solaris and Linux,
a regression from 9.0, and does not appear to be permitted by the
description of ENOTDIR:
20 ENOTDIR Not a directory. A component of the specified pathname
existed, but it was not a directory, when a directory was
expected.
PR: standards/171577
MFC after: 3 days
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/stdlib/realpath.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/lib/libc/stdlib/realpath.c b/lib/libc/stdlib/realpath.c index aded9b2..8fd5457 100644 --- a/lib/libc/stdlib/realpath.c +++ b/lib/libc/stdlib/realpath.c @@ -181,8 +181,6 @@ realpath(const char * __restrict path, char * __restrict resolved) return (NULL); } if (lstat(resolved, &sb) != 0) { - if (errno != ENOENT || p != NULL) - errno = ENOTDIR; if (m) free(resolved); return (NULL); |