Remove special case handling for getfhat(fd, NULL, handle).

There is no reason for it to behave differently from openat(fd, NULL).
Also the handling did not worked because the substituted path was from
the system address space, causing EFAULT.

Submitted by:	Jack Halford <jack@gandi.net>
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D18501
This commit is contained in:
Konstantin Belousov 2018-12-11 02:48:49 +00:00
parent a64886cef3
commit eba8ab0e3e
2 changed files with 5 additions and 5 deletions

View File

@ -29,7 +29,7 @@
.\" @(#)getfh.2 8.1 (Berkeley) 6/9/93
.\" $FreeBSD$
.\"
.Dd December 7, 2018
.Dd December 11, 2018
.Dt GETFH 2
.Os
.Sh NAME
@ -76,12 +76,12 @@ and
.Fn lgetfh
except when the
.Fa path
specifies a relative or NULL path, or the
specifies a relative path, or the
.Dv AT_BENEATH
flag is provided.
For
.Fn getfhat
and relative or NULL
and relative
.Fa path ,
the status is retrieved from a file relative to
the directory associated with the file descriptor

View File

@ -4196,8 +4196,8 @@ sys_getfhat(struct thread *td, struct getfhat_args *uap)
if ((uap->flags & ~(AT_SYMLINK_NOFOLLOW | AT_BENEATH)) != 0)
return (EINVAL);
return (kern_getfhat(td, uap->flags, uap->fd, uap->path ? uap->path : ".",
UIO_USERSPACE, uap->fhp));
return (kern_getfhat(td, uap->flags, uap->fd, uap->path, UIO_USERSPACE,
uap->fhp));
}
static int