Re: git: 453968c78d27 - main - uipc_usrreq: revert addition of EMPTYPATH for bindat(2)

From: Nuno Teixeira <eduardo_at_freebsd.org>
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