Re: [PATCH] selftests/landlock: Skip scoped_signal subtest with MSG_OOB if not available

Mickaël Salaün <[email protected]>
Newsgroups org.kernel.vger.linux-security-module,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest
Message-ID <[email protected]>
Applied (with a Fixes tag), thanks!

On Fri, Jul 10, 2026 at 10:16:42AM +0200, Thomas Huth wrote:
> From: Thomas Huth <[email protected]>
> 
> MSG_OOB might be disabled in the kernel for unix sockets (by not
> selecting CONFIG_AF_UNIX_OOB), and in this case the related tests
> of the scoped_signal_test are currently failing.  Add a runtime
> probe using socketpair() to detect MSG_OOB support and skip the
> test gracefully if it is unavailable.
> 
> Signed-off-by: Thomas Huth <[email protected]>
> ---
>  .../selftests/landlock/scoped_signal_test.c   | 21 +++++++++++++++++++
>  1 file changed, 21 insertions(+)
> 
> diff --git a/tools/testing/selftests/landlock/scoped_signal_test.c b/tools/testing/selftests/landlock/scoped_signal_test.c
> index 58d25157fe781..3cf20d769f2bc 100644
> --- a/tools/testing/selftests/landlock/scoped_signal_test.c
> +++ b/tools/testing/selftests/landlock/scoped_signal_test.c
> @@ -398,6 +398,24 @@ static int setup_signal_handler(int signal)
>  	return sigaction(SIGURG, &sa, NULL);
>  }
>  
> +/*
> + * MSG_OOB might be disabled in the kernel via the CONFIG_AF_UNIX_OOB
> + * switch, so this function can be used for probing for its availability.
> + */
> +static bool has_af_unix_oob(void)
> +{
> +	bool available = false;
> +	int sp[2];
> +
> +	if (socketpair(AF_UNIX, SOCK_STREAM, 0, sp) == 0) {
> +		available = (send(sp[0], ".", 1, MSG_OOB) == 1);
> +		close(sp[0]);
> +		close(sp[1]);
> +	}
> +
> +	return available;
> +}
> +
>  /* clang-format off */
>  FIXTURE(fown) {};
>  /* clang-format on */
> @@ -460,6 +478,9 @@ TEST_F(fown, sigurg_socket)
>  	int pipe_parent[2], pipe_child[2];
>  	pid_t child;
>  
> +	if (!has_af_unix_oob())
> +		SKIP(return, "CONFIG_AF_UNIX_OOB / MSG_OOB not available");
> +
>  	memset(&server_address, 0, sizeof(server_address));
>  	set_unix_address(&server_address, 0);
>  
> -- 
> 2.55.0
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.