AT_EMPTY_PATH
(unsigned long)argv, NULL, AT_EMPTY_PATH);
~(AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH | AT_EXECVE_CHECK)) != 0)
if (flag & ~(AT_SYMLINK_FOLLOW | AT_EMPTY_PATH | AT_HANDLE_FID |
flag & (AT_HANDLE_FID | AT_EMPTY_PATH))
if ((at_flags & ~(AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH)) != 0)
if ((at_flags & ~(AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH)) != 0)
flags |= AT_EMPTY_PATH;
int flags = (uflags & AT_EMPTY_PATH) ? LOOKUP_EMPTY : 0;
int flags = (uflags & AT_EMPTY_PATH) ? LOOKUP_EMPTY : 0;
if ((flags & ~(AT_SYMLINK_FOLLOW | AT_EMPTY_PATH)) != 0)
if (flags & AT_EMPTY_PATH)
if (flags & ~(AT_EMPTY_PATH | AT_NO_AUTOMOUNT | AT_RECURSIVE |
uflags = AT_EMPTY_PATH;
uflags = AT_EMPTY_PATH;
if (flags & ~(AT_EMPTY_PATH |
if (flags & ~(AT_EACCESS | AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH))
if (unlikely(flags & ~(AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH)))
if ((flag & ~(AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH)) != 0)
if (flags & ~(AT_SYMLINK_NOFOLLOW | AT_NO_AUTOMOUNT | AT_EMPTY_PATH |
if (flags & ~(AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH))
if ((at_flags & ~(AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH)) != 0)
return path_removexattrat(fd, NULL, AT_EMPTY_PATH, name);
if ((at_flags & ~(AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH)) != 0)
return path_setxattrat(fd, NULL, AT_EMPTY_PATH, name,
if ((at_flags & ~(AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH)) != 0)
return path_getxattrat(fd, NULL, AT_EMPTY_PATH, name, value, size);
if ((at_flags & ~(AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH)) != 0)
return path_listxattrat(fd, NULL, AT_EMPTY_PATH, list, size);
if (!(flags & AT_EMPTY_PATH))
AT_EMPTY_PATH | AT_EXECVE_CHECK);
return fstatat(fildes, "", buf, AT_EMPTY_PATH);
AT_EMPTY_PATH | AT_EXECVE_CHECK);
fail += check_execveat(fd, "", AT_EMPTY_PATH);
ret = check_execveat_invoked_rc(fd, "", AT_EMPTY_PATH, 0, 0);
fail += check_execveat(fd, "", AT_EMPTY_PATH);
fail += check_execveat(fd_cloexec, "", AT_EMPTY_PATH);
fail += check_execveat(fd_path, "", AT_EMPTY_PATH);
fail += check_execveat(fd_ephemeral, "", AT_EMPTY_PATH);
fail += check_execveat(fd_ephemeral, "", AT_EMPTY_PATH);
fail += check_execveat(fd_ephemeral_path, "", AT_EMPTY_PATH);
fail += check_execveat_fail(fd, NULL, AT_EMPTY_PATH, EFAULT);
fail += check_execveat(fd_symlink, "", AT_EMPTY_PATH);
AT_EMPTY_PATH|AT_SYMLINK_NOFOLLOW);
fail += check_execveat(fd_script, "", AT_EMPTY_PATH);
AT_EMPTY_PATH|AT_SYMLINK_NOFOLLOW);
fail += check_execveat_fail(fd_script_cloexec, "", AT_EMPTY_PATH,
fail += check_execveat(fd_script_ephemeral, "", AT_EMPTY_PATH);
fail += check_execveat(fd_script_ephemeral, "", AT_EMPTY_PATH);
fail += check_execveat_fail(dot_dfd, "", AT_EMPTY_PATH, EACCES);
fail += check_execveat_fail(fd_denatured, "", AT_EMPTY_PATH, EACCES);
fail += check_execveat_fail(fd_denatured_path, "", AT_EMPTY_PATH,
fail += check_execveat_fail(99, "", AT_EMPTY_PATH, EBADF);
ASSERT_LT(execveat(fd_context, "", empty_argv, empty_envp, AT_EMPTY_PATH), 0);
if (statx(fd, "", AT_EMPTY_PATH | AT_STATX_SYNC_AS_STAT, STATX_INO, &stx))
AT_EMPTY_PATH | AT_EXECVE_CHECK);
AT_EMPTY_PATH | OPEN_TREE_CLONE | OPEN_TREE_CLOEXEC);
ASSERT_NE(sys_mount_setattr(open_tree_fd, "", AT_EMPTY_PATH, &attr, sizeof(attr)), 0);
AT_EMPTY_PATH |
ASSERT_NE(sys_mount_setattr(open_tree_fd, "", AT_EMPTY_PATH, &attr, sizeof(attr)), 0);
ASSERT_LT(sys_open_tree_attr(open_tree_fd, "", AT_EMPTY_PATH, &attr, sizeof(attr)), 0);
AT_EMPTY_PATH |
ASSERT_NE(sys_mount_setattr(open_tree_fd, "", AT_EMPTY_PATH, &attr,
ASSERT_LT(sys_open_tree_attr(open_tree_fd, "", AT_EMPTY_PATH, &attr, sizeof(attr)), 0);
AT_EMPTY_PATH |
AT_EMPTY_PATH, &attr, sizeof(attr)), 0);
AT_EMPTY_PATH |
AT_EMPTY_PATH, &attr, sizeof(attr)), 0);
AT_EMPTY_PATH |
AT_EMPTY_PATH, &attr, sizeof(attr)), 0);
ASSERT_NE(sys_mount_setattr(open_tree_fd, "", AT_EMPTY_PATH, &attr, sizeof(attr)), 0);
EXPECT_LT(sys_open_tree_attr(open_tree_fd, "", AT_EMPTY_PATH, &attr, sizeof(attr)), 0);
AT_EMPTY_PATH |
ASSERT_NE(sys_mount_setattr(open_tree_fd, "", AT_EMPTY_PATH, &attr, sizeof(attr)), 0);
AT_EMPTY_PATH | OPEN_TREE_CLOEXEC |
ASSERT_EQ(statx(fd_tree_subdir, "", AT_EMPTY_PATH, 0, &stx), 0);
AT_EMPTY_PATH | OPEN_TREE_CLOEXEC |
ASSERT_EQ(statx(fd_tree_subdir, "", AT_EMPTY_PATH, STATX_MNT_ID_UNIQUE, &stx), 0);
AT_EMPTY_PATH | OPEN_TREE_CLOEXEC |
AT_EMPTY_PATH | OPEN_TREE_CLOEXEC);
AT_EMPTY_PATH | OPEN_TREE_CLOEXEC);
ret = sys_mount_setattr(-EBADF, "", AT_EMPTY_PATH, NULL, 0);
ret = sys_mount_setattr(fd, "", AT_EMPTY_PATH | AT_RECURSIVE, &attr, sizeof(attr));
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(ns_fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(fd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(nsfd, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(fd1, "", handle, &mount_id, AT_EMPTY_PATH);
ret = name_to_handle_at(fd, "", handle, &mount_id, AT_EMPTY_PATH);
fd_tree = sys_open_tree(self->pidfd, "", OPEN_TREE_CLONE | OPEN_TREE_CLOEXEC | AT_EMPTY_PATH);
fd_tree = sys_open_tree(self->pidfd, "", OPEN_TREE_CLONE | OPEN_TREE_CLOEXEC | AT_EMPTY_PATH);
ASSERT_EQ(name_to_handle_at(self->child_pidfd1, "", fh, &mnt_id, AT_EMPTY_PATH), 0);
ASSERT_EQ(name_to_handle_at(self->child_pidfd2, "", fh, &mnt_id, AT_EMPTY_PATH), 0);
ASSERT_EQ(name_to_handle_at(self->pidfd, "", fh, &mnt_id, AT_EMPTY_PATH), 0);
ASSERT_EQ(name_to_handle_at(self->child_pidfd3, "", fh, &mnt_id, AT_EMPTY_PATH), 0);
ASSERT_EQ(name_to_handle_at(self->child_pidfd3, "", fh, &mnt_id, AT_EMPTY_PATH), 0);
ASSERT_EQ(name_to_handle_at(self->child_pidfd2, "", fh, &mnt_id, AT_EMPTY_PATH), 0);
ASSERT_EQ(name_to_handle_at(self->child_pidfd2, "", fh, &mnt_id, AT_EMPTY_PATH), 0);
ASSERT_NE(name_to_handle_at(self->child_pidfd2, "lookup-is-not-possible-with-pidfs", fh, &mnt_id, AT_EMPTY_PATH), 0);
ASSERT_NE(name_to_handle_at(self->child_pidfd2, "", fh, &mnt_id, AT_EMPTY_PATH | AT_HANDLE_CONNECTABLE), 0);
ASSERT_EQ(name_to_handle_at(self->child_pidfd2, "", fh, &mnt_id, AT_EMPTY_PATH | AT_HANDLE_FID), 0);
ASSERT_EQ(name_to_handle_at(self->child_pidfd1, "", fh, &mnt_id, AT_EMPTY_PATH), 0);
ASSERT_LT(execveat(self->child_pidfd, "", argv, envp, AT_EMPTY_PATH), 0);
sys_execveat(exec_fd, "", NULL, NULL, AT_EMPTY_PATH);
if (linkat(fd, "", AT_FDCWD, "/tmp/1", AT_EMPTY_PATH) == -1) {