Re: [PATCH net] af_unix: Inherit SO_INQ in unix_stream_connect()
From: Kuniyuki Iwashima
Date: Thu Nov 12 2026 - 01:20:26 EST
On Wed, 11 Nov 2026 10:32:22 +0800, Wenbo Sun wrote:
> When SO_INQ is enabled on a listening AF_UNIX SOCK_STREAM socket,
> accepted sockets created by unix_stream_connect() do not inherit
> u->recvmsg_inq from the listener, unlike TCP_INQ, AF_VSOCK SO_INQ,
> and AF_UNIX SO_RIGHTS_NOTRUNC. As a result, recvmsg() on the
> accepted socket never puts an SCM_INQ control message unless SO_INQ
> is set again after accept().
>
> Copy otheru->recvmsg_inq to newu->recvmsg_inq in
> unix_stream_connect() using READ_ONCE() to pair with the lockless
> WRITE_ONCE() in unix_setsockopt().
>
> Found during LLM-assisted code review of unix_stream_connect() while
> comparing option inheritance between SO_INQ and SO_RIGHTS_NOTRUNC.
>
> Confirmed on UML (x86_64) by enabling SO_INQ on a listening AF_UNIX
> SOCK_STREAM socket before listen() and accept(), sending data from a
> connected client, and observing that recvmsg() on the accepted socket
> returned no SCM_INQ control message.
>
> Tested on UML (x86_64) against the reproducer, verifying that
> recvmsg() on the accepted socket now returns the expected SCM_INQ
> control message, and ran the tools/testing/selftests/net/af_unix/scm_inq
> selftest (all 6 test cases passed).
>
> Fixes: df30285b3670 ("af_unix: Introduce SO_INQ.")
> Signed-off-by: Wenbo Sun <sunwenbo@xxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Kuniyuki Iwashima <kuniyu@xxxxxxxxxx>
Thanks