[LTP] [PATCH 2/2] landlock01: used fixed size for rule_small_size
Wei Gao
wegao@suse.com
Tue Nov 5 11:43:12 CET 2024
On Tue, Nov 05, 2024 at 12:13:25PM +0800, Li Wang wrote:
> The landlock01 test is failing on kernel v6.12-rc6 with the
> following error:
>
> landlock01.c:49: TFAIL: Size is too small expected EINVAL: ENOMSG (42)
>
> Previously, rule_small_size was calculated conditionally based
> on the presence of the handled_access_net field in the struct
> landlock_ruleset_attr.
>
> However, the kernel's landlock_create_ruleset() function still uses
> the size up to handled_access_fs to determine the minimal acceptable
> size for backward compatibility, regardless of any new fields added.
>
> According to the Landlock maintainer[1], this behavior will remain
> for backward compatibility reasons. Therefore, it's unnecessary to
> conditionally adjust rule_small_size based on new fields.
>
> This patch simplifies the test by setting rule_small_size to
> 'sizeof(__u64) - 1', which effectively tests the minimal size based
> on handled_access_fs.
>
> [1] https://lists.linux.it/pipermail/ltp/2024-July/039084.html
>
> Signed-off-by: Li Wang <liwang@redhat.com>
> ---
> testcases/kernel/syscalls/landlock/landlock01.c | 16 +++++++++++-----
> 1 file changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/landlock/landlock01.c b/testcases/kernel/syscalls/landlock/landlock01.c
> index 083685c64..c375e5154 100644
> --- a/testcases/kernel/syscalls/landlock/landlock01.c
> +++ b/testcases/kernel/syscalls/landlock/landlock01.c
> @@ -62,11 +62,17 @@ static void setup(void)
>
> rule_size = sizeof(struct landlock_ruleset_attr);
>
> -#ifdef HAVE_STRUCT_LANDLOCK_RULESET_ATTR_HANDLED_ACCESS_NET
> - rule_small_size = rule_size - sizeof(uint64_t) - 1;
> -#else
> - rule_small_size = rule_size - 1;
> -#endif
Since we do not need HAVE_STRUCT_LANDLOCK_RULESET_ATTR_HANDLED_ACCESS_NET anymore, so i suppose we can remove
following change in configure.ac?
AC_CHECK_MEMBERS([struct landlock_ruleset_attr.handled_access_net],,,[#include <linux/landlock.h>])
> + /*
> + * Kernel introduces two new fields 'handled_access_net' and 'scoped'
> + * in the structure 'landlock_ruleset_attr'. However, in the function
> + * 'landlock_create_ruleset()', it still uses the first field
> + * 'handled_access_fs' to calculate the minimal size for backward
> + * compatibility reason.
> + *
> + * Therefore, here test 'sizeof(__u64) - 1' is sufficient to determine
> + * the minimum size for 'rule_small_size'.
> + */
> + rule_small_size = sizeof(__u64) - 1;
>
> rule_big_size = SAFE_SYSCONF(_SC_PAGESIZE) + 1;
> }
> --
> 2.47.0
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
More information about the ltp
mailing list