Lines Matching defs:pathfd
112 int pathfd;
116 pathfd = open(path, O_PATH);
117 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
119 ATF_REQUIRE_ERRNO(EBADF, fchmod(pathfd, 0666) == -1);
120 ATF_REQUIRE_ERRNO(EBADF, fchown(pathfd, getuid(), getgid()) == -1);
121 ATF_REQUIRE_ERRNO(EBADF, fchflags(pathfd, UF_NODUMP) == -1);
123 ATF_REQUIRE_ERRNO(EBADF, futimes(pathfd, tv) == -1);
125 ATF_REQUIRE_ERRNO(EBADF, futimens(pathfd, ts) == -1);
128 ATF_REQUIRE_MSG(fstat(pathfd, &sb) == 0, FMT_ERR("fstat"));
129 ATF_REQUIRE_MSG(fpathconf(pathfd, _PC_LINK_MAX) != -1,
132 CHECKED_CLOSE(pathfd);
141 int pathfd;
145 pathfd = open(path, O_PATH);
146 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
151 aio.aio_fildes = pathfd;
159 CHECKED_CLOSE(pathfd);
212 * Check that a pathfd can be converted to a regular fd using openat() in
213 * capability mode, but that rights on the pathfd are respected.
220 int dfd, fd, pathfd, pathdfd;
226 pathfd = open(path, O_PATH);
227 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
255 fd = openat(pathfd, "", O_RDWR | O_EMPTY_PATH);
260 ATF_REQUIRE(cap_rights_limit(pathfd, &rights) == 0);
261 fd = openat(pathfd, "", O_RDWR | O_EMPTY_PATH | O_APPEND);
269 ATF_REQUIRE(cap_rights_limit(pathfd, &rights) == 0);
270 fd = openat(pathfd, "", O_RDWR | O_EMPTY_PATH);
277 ATF_REQUIRE(cap_rights_limit(pathfd, &rights) == 0);
278 fd = openat(pathfd, "", O_RDONLY | O_EMPTY_PATH);
281 CHECKED_CLOSE(pathfd);
291 int error, pathfd, status;
303 pathfd = open(path, O_PATH);
304 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
312 pc.pc_fd = pathfd;
323 CHECKED_CLOSE(pathfd);
333 int fd, pathfd;
337 pathfd = open(path, O_PATH | O_DIRECTORY);
338 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
342 getdirentries(pathfd, (char *)&de, sizeof(de), NULL) == -1);
344 /* It should be possible to create files under pathfd. */
345 fd = openat(pathfd, "test", O_RDWR | O_CREAT, 0600);
347 ATF_REQUIRE_MSG(fstatat(pathfd, "test", &sb, 0) == 0,
353 ATF_REQUIRE_ERRNO(EBADF, fchmod(pathfd, 0500) == -1);
356 openat(pathfd, "test2", O_RDWR | O_CREAT, 0600) < 0);
360 ATF_REQUIRE_MSG(fchdir(pathfd) == 0, FMT_ERR("fchdir"));
362 CHECKED_CLOSE(pathfd);
374 int pathfd;
378 pathfd = open(path, O_PATH | O_DIRECTORY);
379 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
381 ATF_REQUIRE_ERRNO(EBADF, fchmod(pathfd, 0500) == -1);
384 openat(pathfd, "test2", O_RDWR | O_CREAT, 0600) < 0);
386 CHECKED_CLOSE(pathfd);
399 int pathfd;
403 pathfd = open(path, O_PATH);
404 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
407 ATF_REQUIRE_MSG(faccessat(pathfd, "", F_OK, AT_EMPTY_PATH) == 0,
409 ATF_REQUIRE_MSG(chflagsat(pathfd, "", UF_NODUMP, AT_EMPTY_PATH) == 0,
411 ATF_REQUIRE_MSG(fchmodat(pathfd, "", 0600, AT_EMPTY_PATH) == 0,
413 ATF_REQUIRE_MSG(fchownat(pathfd, "", getuid(), getgid(),
415 ATF_REQUIRE_MSG(fstatat(pathfd, "", &sb, AT_EMPTY_PATH) == 0,
420 ATF_REQUIRE_MSG(utimensat(pathfd, "", ts, AT_EMPTY_PATH) == 0,
423 CHECKED_CLOSE(pathfd);
434 int pathfd;
436 pathfd = open("/dev/null", O_PATH);
437 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
440 chflagsat(pathfd, "", UF_NODUMP, AT_EMPTY_PATH) == -1);
442 fchownat(pathfd, "", getuid(), getgid(), AT_EMPTY_PATH) == -1);
444 fchmodat(pathfd, "", 0600, AT_EMPTY_PATH) == -1);
446 linkat(pathfd, "", AT_FDCWD, "test", AT_EMPTY_PATH) == -1);
448 CHECKED_CLOSE(pathfd);
464 int pathfd;
468 pathfd = open(path, O_PATH);
469 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
470 ATF_REQUIRE_MSG(fstatat(pathfd, "", &sb, AT_EMPTY_PATH) == 0,
473 ATF_REQUIRE_MSG(linkat(pathfd, "", AT_FDCWD, "test", AT_EMPTY_PATH) ==
480 CHECKED_CLOSE(pathfd);
494 int kq, pathfd;
498 pathfd = open(path, O_PATH);
499 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
502 pollfd.fd = pathfd;
517 EV_SET(&ev, pathfd, EVFILT_READ, EV_ADD | EV_ENABLE, 0, 0, 0);
525 EV_SET(&ev, pathfd, EVFILT_READ, EV_DELETE, 0, 0, 0);
530 EV_SET(&ev, pathfd, EVFILT_VNODE, EV_ADD | EV_ENABLE, NOTE_DELETE, 0,
534 ATF_REQUIRE_MSG(funlinkat(AT_FDCWD, path, pathfd, 0) == 0,
540 EV_SET(&ev, pathfd, EVFILT_VNODE, EV_DELETE, 0, 0, 0);
545 CHECKED_CLOSE(pathfd);
553 int flags, pathfd, pathfd2;
557 pathfd = open(path, O_PATH);
558 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
561 flags = fcntl(pathfd, F_GETFL);
566 fcntl(pathfd, F_SETFL, flags & ~O_PATH));
568 fcntl(pathfd, F_SETFL, flags | O_APPEND));
571 pathfd2 = fcntl(pathfd, F_DUPFD, 0);
579 pathfd2 = dup(pathfd);
587 ATF_REQUIRE_MSG(fcntl(pathfd, F_SETFD, FD_CLOEXEC) == 0,
589 ATF_REQUIRE_MSG(fcntl(pathfd, F_GETFD) == FD_CLOEXEC,
592 CHECKED_CLOSE(pathfd);
601 int fd, pathfd;
606 pathfd = open("/usr/bin/true", O_PATH | O_EXEC);
607 if (pathfd < 0)
609 fexecve(pathfd,
626 pathfd = open(path, O_PATH | O_EXEC);
627 ATF_REQUIRE_ERRNO(EACCES, pathfd < 0);
636 int kq, pathfd;
643 pathfd = open(path, O_PATH);
644 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
646 ATF_REQUIRE_ERRNO(EBADF, write(pathfd, buf, sizeof(buf)));
647 ATF_REQUIRE_ERRNO(EBADF, read(pathfd, buf, sizeof(buf)));
651 EV_SET(&ev, pathfd, EVFILT_READ, EV_ADD | EV_ENABLE, 0, 0, 0);
654 CHECKED_CLOSE(pathfd);
663 int pathfd;
667 pathfd = open(path, O_PATH);
668 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
670 ATF_REQUIRE_MSG(funlinkat(AT_FDCWD, path, pathfd, 0) == 0,
674 CHECKED_CLOSE(pathfd);
685 int error, fd, pathfd, sd[2];
690 pathfd = open(path, O_PATH | O_CREAT, 0600);
691 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open(O_PATH|O_CREAT)"));
693 ATF_REQUIRE_ERRNO(EBADF, write(pathfd, path, strlen(path)) == -1);
694 CHECKED_CLOSE(pathfd);
699 pathfd = open(path, O_PATH);
700 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
706 write(pathfd, iov.iov_base, iov.iov_len) == -1);
708 pwrite(pathfd, iov.iov_base, iov.iov_len, 0) == -1);
710 writev(pathfd, &iov, 1) == -1);
712 pwritev(pathfd, &iov, 1, 0) == -1);
714 read(pathfd, path, 1) == -1);
716 pread(pathfd, path, 1, 0) == -1);
718 readv(pathfd, &iov, 1) == -1);
720 preadv(pathfd, &iov, 1, 0) == -1);
726 copy_file_range(fd, NULL, pathfd, NULL, sizeof(buf), 0) == -1);
728 copy_file_range(pathfd, NULL, fd, NULL, sizeof(buf), 0) == -1);
735 sendfile(pathfd, sd[0], 0, 0, NULL, NULL, 0));
741 lseek(pathfd, 0, SEEK_SET) == -1);
745 ftruncate(pathfd, 0) == -1);
746 error = posix_fallocate(pathfd, 0, sizeof(buf) * 2);
748 error = posix_fadvise(pathfd, 0, sizeof(buf), POSIX_FADV_NORMAL);
754 mmap(NULL, page_size, PROT_READ, MAP_SHARED, pathfd, 0) ==
757 mmap(NULL, page_size, PROT_NONE, MAP_SHARED, pathfd, 0) ==
760 mmap(NULL, page_size, PROT_READ, MAP_PRIVATE, pathfd, 0) ==
764 ATF_REQUIRE_ERRNO(EBADF, fsync(pathfd) == -1);
765 ATF_REQUIRE_ERRNO(EBADF, fdatasync(pathfd) == -1);
767 CHECKED_CLOSE(pathfd);
776 int pathfd, val;
781 pathfd = open(path, O_PATH);
782 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
785 ATF_REQUIRE_ERRNO(EBADF, ioctl(pathfd, FIONBIO, &val) == -1);
786 ATF_REQUIRE_ERRNO(EBADF, ioctl(pathfd, FIONREAD, &val) == -1);
787 ATF_REQUIRE_ERRNO(EBADF, ioctl(pathfd, FIONWRITE, &val) == -1);
788 ATF_REQUIRE_ERRNO(EBADF, ioctl(pathfd, FIONSPACE, &val) == -1);
790 CHECKED_CLOSE(pathfd);
793 pathfd = open("/dev/mem", O_PATH);
794 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
797 ATF_REQUIRE_ERRNO(EBADF, ioctl(pathfd, MEM_EXTRACT_PADDR, &me) == -1);
799 CHECKED_CLOSE(pathfd);
807 int fd, pathfd;
817 pathfd = open(path, O_PATH | O_EXLOCK);
818 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
823 ATF_REQUIRE_ERRNO(EOPNOTSUPP, flock(pathfd, LOCK_SH) == -1);
824 ATF_REQUIRE_ERRNO(EOPNOTSUPP, flock(pathfd, LOCK_EX) == -1);
825 ATF_REQUIRE_ERRNO(EOPNOTSUPP, flock(pathfd, LOCK_SH | LOCK_NB) == -1);
826 ATF_REQUIRE_ERRNO(EOPNOTSUPP, flock(pathfd, LOCK_EX | LOCK_NB) == -1);
827 ATF_REQUIRE_ERRNO(EOPNOTSUPP, flock(pathfd, LOCK_UN) == -1);
832 ATF_REQUIRE_ERRNO(EBADF, fcntl(pathfd, F_GETLK, &flk) == -1);
834 ATF_REQUIRE_ERRNO(EBADF, fcntl(pathfd, F_SETLK, &flk) == -1);
835 ATF_REQUIRE_ERRNO(EBADF, fcntl(pathfd, F_SETLKW, &flk) == -1);
837 ATF_REQUIRE_ERRNO(EBADF, fcntl(pathfd, F_SETLK, &flk) == -1);
838 ATF_REQUIRE_ERRNO(EBADF, fcntl(pathfd, F_SETLKW, &flk) == -1);
840 CHECKED_CLOSE(pathfd);
870 int flags, pathfd, pathfd_copy, sd[2];
878 pathfd = open(path, O_PATH);
879 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
882 cmsg = malloc(CMSG_SPACE(sizeof(pathfd)));
885 cmsg->cmsg_len = CMSG_LEN(sizeof(pathfd));
888 *(int *)(void *)CMSG_DATA(cmsg) = pathfd;
898 msg.msg_controllen = CMSG_SPACE(sizeof(pathfd));
903 /* Grab the pathfd copy from the other end of the pair. */
908 msg.msg_controllen = CMSG_SPACE(sizeof(pathfd));
913 ATF_REQUIRE_MSG(pathfd_copy != pathfd,
914 "pathfd and pathfd_copy are equal");
925 CHECKED_CLOSE(pathfd);
939 int kq, pathfd, sd;
953 pathfd = open(path, O_PATH);
954 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
956 ATF_REQUIRE_MSG(fstatat(pathfd, "", &sb, AT_EMPTY_PATH) == 0,
962 ATF_REQUIRE_ERRNO(EBADF, write(pathfd, buf, sizeof(buf)));
963 ATF_REQUIRE_ERRNO(EBADF, read(pathfd, buf, sizeof(buf)));
968 EV_SET(&ev, pathfd, EVFILT_READ, EV_ADD | EV_ENABLE, 0, 0, 0);
972 ATF_REQUIRE_ERRNO(EOPNOTSUPP, openat(pathfd, "", O_EMPTY_PATH) == -1);
974 ATF_REQUIRE_MSG(funlinkat(AT_FDCWD, path, pathfd, 0) == 0,
978 CHECKED_CLOSE(pathfd);
989 int pathfd;
993 pathfd = open(path, O_PATH);
994 ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open"));
996 ATF_REQUIRE_MSG(fstatat(pathfd, "", &sb, AT_EMPTY_PATH) == 0,
999 ATF_REQUIRE_MSG(fstat(pathfd, &sb) == 0, FMT_ERR("fstat"));
1004 ATF_REQUIRE_MSG(fstatat(pathfd, "", &sb, AT_EMPTY_PATH) == 0,
1007 ATF_REQUIRE_MSG(fstat(pathfd, &sb) == 0, FMT_ERR("fstat"));
1010 CHECKED_CLOSE(pathfd);