open(2): Clarify non-POSIX error when opening a symlink with O_NOFOLLOW.

We return [EMLINK] instead of [ELOOP] when trying to open a symlink with
O_NOFOLLOW, so that the original case of [ELOOP] can be distinguished. Code
like cmp -h and xz takes advantage of this.

PR:		214633
Reviewed by:	kib, imp
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D8586
This commit is contained in:
Jilles Tjoelker 2016-11-22 22:30:55 +00:00
parent e10312ca7b
commit 295159dfa3
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=309026

View File

@ -28,7 +28,7 @@
.\" @(#)open.2 8.2 (Berkeley) 11/16/93
.\" $FreeBSD$
.\"
.Dd September 30, 2016
.Dd November 22, 2016
.Dt OPEN 2
.Os
.Sh NAME
@ -503,6 +503,22 @@ The
.Fn openat
function was introduced in
.Fx 8.0 .
.Sh STANDARDS
These functions are specified by
.St -p1003.1-2008 .
.Fx
sets
.Va errno
to
.Er EMLINK instead of
.Er ELOOP
as specified by
.Tn POSIX
when
.Dv O_NOFOLLOW
is set in flags and the final component of pathname is a symbolic link
to distinguish it from the case of too many symbolic link traversals
in one of its non-final components.
.Sh BUGS
The Open Group Extended API Set 2 specification requires that the test
for whether