[LTP] [PATCH] getdents: account for d_name size in tst_dirp_size

Jan Stancek jstancek@redhat.com
Mon Sep 16 13:15:54 CEST 2024


On Mon, Sep 16, 2024 at 12:51 PM Andreas Schwab <schwab@suse.de> wrote:
>
> The linux_dirent and linux_dirent64 structs do not contain space for the
> d_name member.  Add NAME_MAX to the size in tst_dirp_size so that the
> getdents syscalls do not spuriously fail with EINVAL instead of EFAULT.
>
> Signed-off-by: Andreas Schwab <schwab@suse.de>

Acked-by: Jan Stancek <jstancek@redhat.com>

> ---
>  testcases/kernel/syscalls/getdents/getdents.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/getdents/getdents.h b/testcases/kernel/syscalls/getdents/getdents.h
> index 560df4126..02c3bc509 100644
> --- a/testcases/kernel/syscalls/getdents/getdents.h
> +++ b/testcases/kernel/syscalls/getdents/getdents.h
> @@ -64,9 +64,9 @@ tst_dirp_size(void)
>  {
>         switch (tst_variant) {
>         case 0:
> -               return sizeof(struct linux_dirent);
> +               return sizeof(struct linux_dirent) + NAME_MAX;
>         case 1:
> -               return sizeof(struct linux_dirent64);
> +               return sizeof(struct linux_dirent64) + NAME_MAX;
>  #if HAVE_GETDENTS
>         case 2:
>                 return sizeof(struct dirent);
> --
> 2.46.1
>
>
> --
> Andreas Schwab, SUSE Labs, schwab@suse.de
> GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
> "And now for something completely different."
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
>



More information about the ltp mailing list