Message ID | mvmplp327ob.fsf@suse.de |
---|---|
State | Accepted |
Headers | show |
Series | getdents: account for d_name size in tst_dirp_size | expand |
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 >
Hi! Applied, thanks.
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);
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> --- testcases/kernel/syscalls/getdents/getdents.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)