[LTP] [PATCH] coredump01: Skip pipe core_pattern under SELinux enforcing

Petr Vorel pvorel@suse.cz
Mon Sep 21 10:54:03 CEST 2026


Hi Avinesh,

thanks for the fix, merged.

@Jan @Li @Michael FYI

Kind regards,
Petr

> SELinux in enforcing mode silently blocks the kernel's usermode-helper
> spawn for the piped core_pattern, so the helper never runs and the
> test reports FAIL.

> coredump01.c:126: TINFO: Testing pipe core_pattern
> coredump01.c:100: TFAIL: coredump01_helper did not report any core dump

> Skip with TCONF instead of failing.

> Signed-off-by: Avinesh Kumar <avinesh.kumar@suse.com>
> ---
>  testcases/kernel/coredump/coredump01.c | 9 +++++++++
>  1 file changed, 9 insertions(+)

> diff --git a/testcases/kernel/coredump/coredump01.c b/testcases/kernel/coredump/coredump01.c
> index c4fb92e4dcb0..15aaf8c56143 100644
> --- a/testcases/kernel/coredump/coredump01.c
> +++ b/testcases/kernel/coredump/coredump01.c
> @@ -31,12 +31,14 @@

>  #include "coredump_common.h"
>  #include "tst_kconfig.h"
> +#include "tst_security.h"

>  #define HELPER "coredump01_helper"
>  #define HELPER_TIMEOUT 10

>  static char helper_path[PATH_MAX];
>  static int static_usermodehelper;
> +static int selinux_enforcing;

>  /*
>   * e_ident[] and e_type live at the same file offset in ELF32 and ELF64,
> @@ -89,6 +91,11 @@ static void verify_pipe_pattern(void)
>  		return;
>  	}

> +	if (selinux_enforcing) {
> +		tst_res(TCONF, "SELinux is enforcing, skipping pipe core_pattern");
> +		return;
> +	}
> +
>  	set_pattern("|%s %%e %%p %%s %s/res.%%p", helper_path, cwd);

>  	pid = crash_child();
> @@ -137,6 +144,8 @@ static void setup(void)
>  	tst_kconfig_read(&kconfig, 1);
>  	static_usermodehelper = (kconfig.choice == 'y');

> +	selinux_enforcing = tst_selinux_enforcing();
> +
>  	if (tst_get_path(HELPER, path, sizeof(path)))
>  		tst_brk(TCONF, "'%s' not found in $PATH", HELPER);


More information about the ltp mailing list