From: "Günther Noack" <gnoack3000@gmail.com>
To: Kuniyuki Iwashima <kuniyu@google.com>
Cc: Alejandro Colomar <alx@kernel.org>, linux-man@vger.kernel.org
Subject: Re: [PATCH 8/8] man/man7/unix.7: ERRORS: Document EACCES, EAGAIN, EMSGSIZE, ENOSPC, and EPERM
Date: Mon, 26 Oct 2026 22:27:47 +0100 [thread overview]
Message-ID: <20261026.0b7f6cd5c7f8@gnoack.org> (raw)
In-Reply-To: <atxJNMgN8oadDlDZ@google.com>
Thanks for the review!
On Sat, Oct 24, 2026 at 06:03:02AM +0000, Kuniyuki Iwashima wrote:
> On Wed, 21 Oct 2026 23:08:00 +0200, Günther Noack wrote:
> > These are all returned directly from linux.git net/unix/af_unix.c:
> >
> > EACCES
> > unix_find_bsd() checks path_permission(&path, MAY_WRITE) on the
> > socket file of the remote address. The rule was already described
> > in prose, but the error was not listed.
> >
> > EAGAIN
> > unix_stream_connect() returns -EAGAIN when the listener's backlog
> > is full and the socket is nonblocking (there is no EINPROGRESS for
> > AF_UNIX). unix_dgram_sendmsg() returns -EAGAIN when the receiver's
> > queue is full and the send would block.
> >
> > EMSGSIZE
> > unix_dgram_sendmsg() fails if 'len > sk->sk_sndbuf - 32'. This is
> > the limit described in "Sockets API".
> >
> > ENOSPC
> > unix_autobind() fails when all 2^20 autobind names are taken.
> >
> > EPERM
> > unix_dgram_connect() and unix_dgram_sendmsg() fail if
> > !unix_may_send(), that is, if the target datagram socket is
> > connected to a socket other than the caller's.
> >
> > This is not something that the remote end normally does,
> > but it's a possible corner case.
> >
> > Cc: Kuniyuki Iwashima <kuniyu@google.com>
> > Assisted-by: LLM
> > Signed-off-by: Günther Noack <gnoack3000@gmail.com>
> > ---
> >
> > Notes:
> > Verified in code. Kept LLM wording, which seemed OK.
> >
> > Remark:
> >
> > The case where the remote end is connected to a different socket is
> > obscure, but still possible with Unix Domain Sockets, when a program
> > first bind(2)s to a name, and then connect(2)s to another name. Then
> > that socket can be discovered by another process through the bound
> > name, but sending a dgram fails if the sender is not the one that that
> > socket has connected to.
> >
> > man/man7/unix.7 | 32 ++++++++++++++++++++++++++++++++
> > 1 file changed, 32 insertions(+)
> >
> > diff --git a/man/man7/unix.7 b/man/man7/unix.7
> > index 054f1af75dd5..79198445c581 100644
> > --- a/man/man7/unix.7
> > +++ b/man/man7/unix.7
> > @@ -655,10 +655,25 @@ defined in
> > .\" and it may well change, probably best not to document this now.
> > .SH ERRORS
> > .TP
> > +.B EACCES
> > +The caller does not have write permission on the socket file
>
> If we align with other doc, "write permission is denied..."
Done.
(IIRC, the man pages have similar, but inconsistent, wording for this,
but this is the shorter variant.)
> > +specified as the remote address to
> > +.BR connect (2)
> > +or
> > +.BR sendto (2)
> > +(see "Pathname socket ownership and permissions", above).
> > +.TP
> > .B EADDRINUSE
> > The specified local address is already in use or the filesystem socket
> > object already exists.
>
> s/filesystem socket object/file/
>
> Two sockets can have the same address once one's file
> is removed even without closing the socket.
Sounds good, changed it to "file"; I guess it does not matter what
kind of file is preexisting under the desired name.
–Günther
prev parent reply other threads:[~2026-10-26 21:27 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-21 21:07 [PATCH 0/8] {unix,socket,bind}.7: General Unix Domain Socket fixes Günther Noack
2026-10-21 21:07 ` [PATCH 1/8] man/man7/socket.7: SO_PEEK_OFF: This option is no longer specific to unix(7) Günther Noack
2026-10-23 18:20 ` Alejandro Colomar
2026-10-26 20:48 ` Günther Noack
2026-10-24 5:27 ` Kuniyuki Iwashima
2026-10-21 21:07 ` [PATCH 2/8] man/man7/unix.7: SO_PEERCRED: Also works for SOCK_SEQPACKET Günther Noack
2026-10-24 5:28 ` Kuniyuki Iwashima
2026-10-21 21:07 ` [PATCH 3/8] man/man7/unix.7: SIOCINQ: Document behavior " Günther Noack
2026-10-24 5:34 ` Kuniyuki Iwashima
2026-10-26 20:59 ` Günther Noack
2026-10-21 21:07 ` [PATCH 4/8] man/man7/unix.7: Explain Abstract UDS scoping to the network namespace Günther Noack
2026-10-24 5:39 ` Kuniyuki Iwashima
2026-10-26 21:11 ` Günther Noack
2026-10-27 5:12 ` Kuniyuki Iwashima
2026-10-27 7:58 ` Günther Noack
2026-10-21 21:07 ` [PATCH 5/8] man/man7/unix.7: SOCK_RAW is accepted as an alias for SOCK_DGRAM Günther Noack
2026-10-24 5:44 ` Kuniyuki Iwashima
2026-10-26 21:13 ` Günther Noack
2026-10-21 21:07 ` [PATCH 6/8] man/man7/unix.7: ERRORS: EPROTONOSUPPORT: Protocol 0 is also accepted Günther Noack
2026-10-24 5:47 ` Kuniyuki Iwashima
2026-10-26 21:15 ` Günther Noack
2026-10-21 21:07 ` [PATCH 7/8] man/man2/bind.2: ERRORS: EACCES: Write permission on the directory is required Günther Noack
2026-10-24 5:56 ` Kuniyuki Iwashima
2026-10-24 5:58 ` Kuniyuki Iwashima
2026-10-26 21:16 ` Günther Noack
2026-10-21 21:08 ` [PATCH 8/8] man/man7/unix.7: ERRORS: Document EACCES, EAGAIN, EMSGSIZE, ENOSPC, and EPERM Günther Noack
2026-10-24 6:03 ` Kuniyuki Iwashima
2026-10-26 21:27 ` Günther Noack [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261026.0b7f6cd5c7f8@gnoack.org \
--to=gnoack3000@gmail.com \
--cc=alx@kernel.org \
--cc=kuniyu@google.com \
--cc=linux-man@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.