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

Petr Vorel pvorel@suse.cz
Tue Sep 22 11:25:24 CEST 2026


Hi Avinesh, all,

> Hi Avinesh,

> thanks for the fix, merged.

FYI I was not able to reproduce the problem on 2 older Tumbleweed versions:

$ getenforce
Enforcing

$ uname -r
7.2.0-1-default # Tumbleweed VERSION="20260826"
6.17.0 # Tumbleweed VERSION="20250310"

$ cat /proc/cmdline
... security=selinux selinux=1 ...


$ rpm -qa |grep -i selinux # Tumbleweed VERSION="20260826"
libselinux1-3.8-2.2.x86_64
libselinux-devel-3.8-2.2.x86_64
selinux-tools-3.8-2.2.x86_64
python313-selinux-3.8-2.3.x86_64
selinux-autorelabel-4.0+git7-1.2.x86_64
selinux-policy-20250305-1.2.noarch
selinux-policy-targeted-20250305-1.2.noarch
container-selinux-2.234.2-1.2.noarch
patterns-base-selinux-20241218-5.1.x86_64
libselinux1-32bit-3.8-2.2.x86_64

coredump01.c:72: TPASS: core.%e.%p.%s expanded to core.coredump01.893495.6 passed
coredump01.c:57: TPASS: Expect: /tmp/LTP_corqUjmUe/core.coredump01.893495.6 starts with ELF magic
coredump01.c:58: TPASS: e_type == ET_CORE (4)
coredump01.c:126: TINFO: Testing pipe core_pattern
coredump01.c:107: TPASS: exe == "coredump01" (coredump01)
coredump01.c:108: TPASS: pid_seen == pid (893496)
coredump01.c:109: TPASS: sig_seen == SIGABRT (6)
coredump01.c:110: TPASS: Expect: coredump01_helper read 598016 bytes of ELF core dump
coredump01.c:111: TPASS: et_core == 1 (1)

Because we have these tests failing in our openQA testing it's a real problem.
I just wonder what setup / version bump caused it. I try to update my VM to see
if I'm able to reproduce it locally.

Kind regards,
Petr


> @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