[LTP] [PATCH] syscalls/prctl04: Fix false positive report when SECCOMP_MODE_FILTER is not supported

He Zhe zhe.he@windriver.com
Sat Nov 19 14:05:57 CET 2022



On 11/18/22 21:33, Cyril Hrubis wrote:
> Hi!
> I did reply to the github issue already with:

Thanks for taking care of this. I'll send v2.

Zhe

>
> Looking at the patch, maybe it would be cleaner if we did a test if
> SECCOMP_MODE_FILTER is supported in the test setup and set up a global
> variable based on that, something as:
>
> diff --git a/testcases/kernel/syscalls/prctl/prctl04.c b/testcases/kernel/syscalls/prctl/prctl04.c
> index b9f4c2a10..d4e44cb1b 100644
> --- a/testcases/kernel/syscalls/prctl/prctl04.c
> +++ b/testcases/kernel/syscalls/prctl/prctl04.c
> @@ -61,6 +61,8 @@ static const struct sock_fprog  strict = {
>         .filter = (struct sock_filter *)strict_filter
>  };
>
> +static int mode_filter_supported;
> +
>  static void check_strict_mode(int);
>  static void check_filter_mode(int);
>
> @@ -219,6 +221,16 @@ static void setup(void)
>         TEST(prctl(PR_GET_SECCOMP));
>         if (TST_RET == 0) {
>                 tst_res(TINFO, "kernel support PR_GET/SET_SECCOMP");
> +
> +               TEST(prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, NULL));
> +
> +               if (TST_ERR == EFAULT) {
> +                       mode_filter_supported = 1;
> +                       tst_res(TINFO, "kernel support SECCOMP_MODE_FILTER");
> +                       return;
> +               }
> +
> +               tst_res(TINFO, "kernel doesn't support SECCOMP_MODE_FILTER");
>                 return;
>         }
>
> Then we can simply use the mode_filter_supported either not to print the
> failure or even to skip the test to begin with.
>



More information about the ltp mailing list