Re: git: 453968c78d27 - main - uipc_usrreq: revert addition of EMPTYPATH for bindat(2)
Date: Mon, 08 Jun 2026 19:33:10 UTC
Hello Konstantin.
I'm geting a testunit failure on devel/aws-c-io reported at
https://github.com/awslabs/aws-c-io/issues/803 that might be related to
this change.
Any clues how to deal with it?
Thanks,
Konstantin Belousov <kib@freebsd.org> escreveu (quinta, 4/06/2026 à(s)
18:55):
> The branch main has been updated by kib:
>
> URL:
> https://cgit.FreeBSD.org/src/commit/?id=453968c78d27ed5c90562a1178f34fe8d616bf40
>
> commit 453968c78d27ed5c90562a1178f34fe8d616bf40
> Author: Konstantin Belousov <kib@FreeBSD.org>
> AuthorDate: 2026-06-04 17:26:09 +0000
> Commit: Konstantin Belousov <kib@FreeBSD.org>
> CommitDate: 2026-06-04 17:55:11 +0000
>
> uipc_usrreq: revert addition of EMPTYPATH for bindat(2)
>
> The caller wants the parent vnode, which cannot be provided for
> emptypath
> lookups.
>
> Reported and reviewed by: markj
> Fixes: 12c590a9abd7 ("bindat(2)/connectat(2): allow implicit
> EMPTYPATH for unix domain sockets")
> Sponsored by: The FreeBSD Foundation
> MFC after: 1 week
> Differential revision: https://reviews.freebsd.org/D57448
> ---
> lib/libsys/open.2 | 4 +---
> sys/kern/uipc_usrreq.c | 5 ++---
> 2 files changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/lib/libsys/open.2 b/lib/libsys/open.2
> index defc593b15ce..7915f7e8ef0a 100644
> --- a/lib/libsys/open.2
> +++ b/lib/libsys/open.2
> @@ -447,11 +447,9 @@ The other functionality of the returned file
> descriptor is limited to
> the following descriptor-level operations:
> .Pp
> .Bl -tag -width __acl_aclcheck_fd -offset indent -compact
> -.It Xr bindat 2
> -for unix domain socket
> -.Pq see Xr unix 4
> .It Xr connectat 2
> for unix domain socket
> +.Pq see Xr unix 4
> .It Xr fcntl 2
> but advisory locking is not allowed
> .It Xr dup 2
> diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c
> index a798aaf4f871..920588627914 100644
> --- a/sys/kern/uipc_usrreq.c
> +++ b/sys/kern/uipc_usrreq.c
> @@ -612,9 +612,8 @@ uipc_bindat(int fd, struct socket *so, struct sockaddr
> *nam, struct thread *td)
> buf[namelen] = 0;
>
> restart:
> - NDINIT_ATRIGHTS(&nd, CREATE, NOFOLLOW | LOCKPARENT | NOCACHE |
> - EMPTYPATH, UIO_SYSSPACE, buf, fd, cap_rights_init_one(&rights,
> - CAP_BINDAT));
> + NDINIT_ATRIGHTS(&nd, CREATE, NOFOLLOW | LOCKPARENT | NOCACHE,
> + UIO_SYSSPACE, buf, fd, cap_rights_init_one(&rights,
> CAP_BINDAT));
> /* SHOULD BE ABLE TO ADOPT EXISTING AND wakeup() ALA FIFO's */
> error = namei(&nd);
> if (error)
>
>
--
Nuno Teixeira
FreeBSD UNIX: <eduardo@FreeBSD.org> Web: https://FreeBSD.org