Lines Matching defs:path
68 mktfile(char path[PATH_MAX], const char *template)
73 snprintf(path, PATH_MAX, "%s", template);
74 fd = mkstemp(path);
84 mktdir(char path[PATH_MAX], const char *template)
86 snprintf(path, PATH_MAX, "%s", template);
87 ATF_REQUIRE_MSG(mkdtemp(path) == path, FMT_ERR("mkdtemp"));
108 char path[PATH_MAX];
114 mktfile(path, "path_access.XXXXXX");
116 pathfd = open(path, O_PATH);
140 char buf[BUFSIZ], path[PATH_MAX];
143 mktfile(path, "path_aio.XXXXXX");
145 pathfd = open(path, O_PATH);
162 /* Basic tests to verify that Capsicum restrictions apply to path fds. */
166 char path[PATH_MAX];
171 mktfile(path, "path_capsicum.XXXXXX");
179 if (open(path, O_PATH) >= 0)
218 char path[PATH_MAX];
222 mktfile(path, "path_capsicum.XXXXXX");
226 pathfd = open(path, O_PATH);
285 /* Make sure that ptrace(PT_COREDUMP) cannot be used to write to a path fd. */
289 char path[PATH_MAX];
294 mktdir(path, "path_coredump.XXXXXX");
303 pathfd = open(path, O_PATH);
326 /* Verify operations on directory path descriptors. */
332 char path[PATH_MAX];
335 mktdir(path, "path_directory.XXXXXX");
337 pathfd = open(path, O_PATH | O_DIRECTORY);
354 ATF_REQUIRE_MSG(chmod(path, 0500) == 0, FMT_ERR("chmod"));
365 /* Verify access permission checking for a directory path fd. */
373 char path[PATH_MAX];
376 mktdir(path, "path_directory.XXXXXX");
378 pathfd = open(path, O_PATH | O_DIRECTORY);
382 ATF_REQUIRE_MSG(chmod(path, 0500) == 0, FMT_ERR("chmod"));
396 char path[PATH_MAX];
401 mktfile(path, "path_empty.XXXXXX");
403 pathfd = open(path, O_PATH);
406 /* Various *at operations should work on path fds. */
426 /* Verify that various operations on a path fd have access checks. */
462 char path[PATH_MAX];
466 mktfile(path, "path_empty_root.XXXXXX");
468 pathfd = open(path, O_PATH);
487 /* poll(2) never returns an event for path fds, but kevent(2) does. */
491 char buf[BUFSIZ], path[PATH_MAX];
496 mktfile(path, "path_event.XXXXXX");
498 pathfd = open(path, O_PATH);
514 /* Try to get a EVFILT_READ event through a path fd. */
529 /* Try to get a EVFILT_VNODE/NOTE_DELETE event through a path fd. */
534 ATF_REQUIRE_MSG(funlinkat(AT_FDCWD, path, pathfd, 0) == 0,
548 /* Check various fcntl(2) operations on a path desriptor. */
552 char path[PATH_MAX];
555 mktfile(path, "path_fcntl.XXXXXX");
557 pathfd = open(path, O_PATH);
599 char path[PATH_MAX];
620 snprintf(path, sizeof(path), "path_fexecve.XXXXXX");
621 ATF_REQUIRE_MSG(mktemp(path) == path, FMT_ERR("mktemp"));
623 fd = open(path, O_CREAT | O_RDONLY, 0600);
626 pathfd = open(path, O_PATH | O_EXEC);
634 char path[PATH_MAX], buf[BUFSIZ];
638 snprintf(path, sizeof(path), "path_fifo.XXXXXX");
639 ATF_REQUIRE_MSG(mktemp(path) == path, FMT_ERR("mktemp"));
641 ATF_REQUIRE_MSG(mkfifo(path, 0666) == 0, FMT_ERR("mkfifo"));
643 pathfd = open(path, O_PATH);
657 /* Files may be unlinked using a path fd. */
661 char path[PATH_MAX];
665 mktfile(path, "path_rights.XXXXXX");
667 pathfd = open(path, O_PATH);
670 ATF_REQUIRE_MSG(funlinkat(AT_FDCWD, path, pathfd, 0) == 0,
672 ATF_REQUIRE_ERRNO(ENOENT, stat(path, &sb) == -1);
681 char path[PATH_MAX], path2[PATH_MAX];
688 snprintf(path, sizeof(path), "path_io.XXXXXX");
689 ATF_REQUIRE_MSG(mktemp(path) == path, FMT_ERR("mktemp"));
690 pathfd = open(path, O_PATH | O_CREAT, 0600);
693 ATF_REQUIRE_ERRNO(EBADF, write(pathfd, path, strlen(path)) == -1);
697 mktfile(path, "path_io.XXXXXX");
699 pathfd = open(path, O_PATH);
703 iov.iov_base = path;
704 iov.iov_len = strlen(path);
714 read(pathfd, path, 1) == -1);
716 pread(pathfd, path, 1, 0) == -1);
770 /* ioctl(2) is not permitted on path fds. */
774 char path[PATH_MAX];
778 mktfile(path, "path_ioctl.XXXXXX");
781 pathfd = open(path, O_PATH);
805 char buf[BUFSIZ], path[PATH_MAX];
809 snprintf(path, sizeof(path), "path_rights.XXXXXX");
810 fd = mkostemp(path, O_SHLOCK);
817 pathfd = open(path, O_PATH | O_EXLOCK);
845 * Verify that fstatat(AT_EMPTY_PATH) on NULL path returns EFAULT.
866 char path[PATH_MAX];
876 mktfile(path, "path_rights.XXXXXX");
878 pathfd = open(path, O_PATH);
935 char buf[BUFSIZ], path[PATH_MAX];
941 snprintf(path, sizeof(path), "path_unix.XXXXXX");
942 ATF_REQUIRE_MSG(mktemp(path) == path, FMT_ERR("mktemp"));
949 (void)strlcpy(sun.sun_path, path, sizeof(sun.sun_path));
953 pathfd = open(path, O_PATH);
974 ATF_REQUIRE_MSG(funlinkat(AT_FDCWD, path, pathfd, 0) == 0,
987 char path[PATH_MAX];
991 mktfile(path, "path_rights.XXXXXX");
993 pathfd = open(path, O_PATH);
1002 ATF_REQUIRE_MSG(unlink(path) == 0, FMT_ERR("unlink"));