[LTP] [PATCH] getdents: account for d_name size in tst_dirp_size
Andreas Schwab
schwab@suse.de
Mon Sep 16 11:29:48 CEST 2024
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.
---
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."
More information about the ltp
mailing list