git: b42df9dafb80 - main - Add test for fstatat(pipefd, AT_EMPTY_PATH)
Konstantin Belousov
kib at FreeBSD.org
Sat Aug 14 11:41:15 UTC 2021
The branch main has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=b42df9dafb8038169e23f9225f3f1588ded8d27e
commit b42df9dafb8038169e23f9225f3f1588ded8d27e
Author: Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-08-14 10:33:18 +0000
Commit: Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-08-14 11:41:01 +0000
Add test for fstatat(pipefd, AT_EMPTY_PATH)
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
---
tests/sys/file/path_test.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/tests/sys/file/path_test.c b/tests/sys/file/path_test.c
index e1f5240374c4..50a77f16736c 100644
--- a/tests/sys/file/path_test.c
+++ b/tests/sys/file/path_test.c
@@ -63,6 +63,25 @@
#define CHECKED_CLOSE(fd) \
ATF_REQUIRE_MSG(close(fd) == 0, FMT_ERR("close"))
+/*
+ * Verify fstatat(AT_EMPTY_PATH) on non-regular dirfd.
+ * Verify that fstatat(AT_EMPTY_PATH) on NULL path returns EFAULT.
+ */
+ATF_TC_WITHOUT_HEAD(path_pipe_fstatat);
+ATF_TC_BODY(path_pipe_fstatat, tc)
+{
+ struct stat sb;
+ int fd[2];
+
+ ATF_REQUIRE_MSG(pipe(fd) == 0, FMT_ERR("pipe"));
+ ATF_REQUIRE_MSG(fstatat(fd[0], "", &sb, AT_EMPTY_PATH) == 0,
+ FMT_ERR("fstatat pipe"));
+ ATF_REQUIRE_ERRNO(EFAULT, fstatat(fd[0], NULL, &sb,
+ AT_EMPTY_PATH) == -1);
+ CHECKED_CLOSE(fd[0]);
+ CHECKED_CLOSE(fd[1]);
+}
+
/* Create a temporary regular file containing some data. */
static void
mktfile(char path[PATH_MAX], const char *template)
@@ -873,6 +892,7 @@ ATF_TP_ADD_TCS(tp)
ATF_TP_ADD_TC(tp, path_lock);
ATF_TP_ADD_TC(tp, path_rights);
ATF_TP_ADD_TC(tp, path_unix);
+ ATF_TP_ADD_TC(tp, path_pipe_fstatat);
return (atf_no_error());
}
More information about the dev-commits-src-main
mailing list