[LTP] [PATCH] getdents02: Add case for errno EFAULT
Avinesh Kumar
akumar@suse.de
Tue Aug 20 09:31:52 CEST 2024
Hi,
Reviewed-by: Avinesh Kumar <akumar@suse.de>
On Monday, August 19, 2024 10:22:13 AM GMT+2 Ma Xinjian via ltp wrote:
> Currently there is no case for EFAULT, so a new case is added.
>
> Signed-off-by: Ma Xinjian <maxj.fnst@fujitsu.com>
> ---
> testcases/kernel/syscalls/getdents/getdents02.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/testcases/kernel/syscalls/getdents/getdents02.c b/testcases/kernel/syscalls/getdents/getdents02.c
> index ade1c9476..578db9d1e 100644
> --- a/testcases/kernel/syscalls/getdents/getdents02.c
> +++ b/testcases/kernel/syscalls/getdents/getdents02.c
> @@ -15,6 +15,7 @@
> * - getdents() fails with EINVAL if result buffer is too small
> * - getdents() fails with ENOTDIR if file descriptor does not refer to a directory
> * - getdents() fails with ENOENT if directory was unlinked()
> + * - getdents() fails with EFAULT if argument points outside the calling process's address space
> */
>
> #define _GNU_SOURCE
> @@ -34,6 +35,7 @@ static size_t size;
>
> static char dirp1_arr[1];
> static char *dirp1 = dirp1_arr;
> +static char *dirp_bad;
> static size_t size1 = 1;
>
> static int fd_inv = -5;
> @@ -51,6 +53,7 @@ static struct tcase {
> { &fd, &dirp1, &size1, EINVAL },
> { &fd_file, &dirp, &size, ENOTDIR },
> { &fd_unlinked, &dirp, &size, ENOENT },
> + { &fd, &dirp_bad, &size, EFAULT },
> };
>
> static void setup(void)
> @@ -63,6 +66,8 @@ static void setup(void)
> fd = SAFE_OPEN(".", O_RDONLY);
> fd_file = SAFE_OPEN("test", O_CREAT | O_RDWR, 0644);
>
> + dirp_bad = tst_get_bad_addr(NULL);
> +
> SAFE_MKDIR(TEST_DIR, DIR_MODE);
> fd_unlinked = SAFE_OPEN(TEST_DIR, O_DIRECTORY);
> SAFE_RMDIR(TEST_DIR);
>
Regards,
Avinesh
More information about the ltp
mailing list