[LTP] [PATCH] waitid10: Fix when coredumps are piped
Richard Palethorpe
rpalethorpe@suse.de
Mon Mar 21 16:17:55 CET 2022
Hello
Cyril Hrubis <chrubis@suse.cz> writes:
> When coredumps are piped into a stdin of a program (the core_pattern
> starts with '|') the RLIMIT_CORE limits are not enforced.
>
> This fixes the test expectation in the corner case that rlim_cur and
> rlim_max for RLIMIT_CORE are both set to 0 but the core pattern is set
> to dump core into a pipe where we previously assumed the core wouldn't
> be dumped.
>
> Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
> ---
> testcases/kernel/syscalls/waitid/waitid10.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/testcases/kernel/syscalls/waitid/waitid10.c b/testcases/kernel/syscalls/waitid/waitid10.c
> index 869ef18bd..e75edd07e 100644
> --- a/testcases/kernel/syscalls/waitid/waitid10.c
> +++ b/testcases/kernel/syscalls/waitid/waitid10.c
> @@ -45,14 +45,17 @@ static void run(void)
> static void setup(void)
> {
> struct rlimit rlim;
> + char c;
>
> SAFE_GETRLIMIT(RLIMIT_CORE, &rlim);
> + SAFE_FILE_SCANF("/proc/sys/kernel/core_pattern", "%c", &c);
>
> if (rlim.rlim_cur)
> return;
>
> if (!rlim.rlim_max) {
> - core_dumps = 0;
> + if (c != '|')
> + core_dumps = 0;
> return;
> }
>
> --
> 2.34.1
Reviewed-by: Richard Palethorpe <rpalethorpe@suse.com>
BTW I thought that division by zero actually just resulted in zero or
INT_MAX on some platforms? (e.g. ARM)
It's undefined behaviour, so I fail to see how this test has ever worked
on some architectures. Perhaps we should dereference a null/invalid
pointer instead?
--
Thank you,
Richard.
More information about the ltp
mailing list