[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