Thread (7 messages) 7 messages, 4 authors, 2d ago

Re: [PATCH net v3 1/2] af_unix: fix listen() succeeding on sockets in the wrong state

From: Jakub Kicinski <kuba@kernel.org>
Date: 2026-07-23 16:12:52
Also in: lkml

On Sat, 18 Jul 2026 14:29:01 -0400 John Ericson wrote:
Commit fd0a109a0f6b ("net, pidfs: prepare for handing out pidfds for
reaped sk->sk_peer_pid") inserted a prepare_peercred() call between err
= -EINVAL and the socket-state check in unix_listen(). Since
prepare_peercred() leaves err at 0 on success, listen() on an AF_UNIX
socket that is not in TCP_CLOSE or TCP_LISTEN state (e.g. one that is
already connected) now silently returns success without doing anything,
instead of failing with EINVAL as it did before.
As the bug proves this

	err = x
	if (cond)
		goto bla;

is a fragile pattern. People do this to avoid the extra braces AFAIU
but it's not worth it. Can you move the error setting before the jumps
please?

	if (cond) {
		err = x;
		goto bla;
	}
-- 
pw-bot: cr
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help