summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2016-04-09 21:04:51 +0000
committerjilles <jilles@FreeBSD.org>2016-04-09 21:04:51 +0000
commite010ff64d6d0e0aad876d62fc2cfb99e2d6fb41e (patch)
treece868aa84c60519a821a307f3f305c7fa86a45b6 /sys/kern
parentf563d215af94d54bbdb4aca07a470f1f3a18de2a (diff)
downloadFreeBSD-src-e010ff64d6d0e0aad876d62fc2cfb99e2d6fb41e.zip
FreeBSD-src-e010ff64d6d0e0aad876d62fc2cfb99e2d6fb41e.tar.gz
MFC r281086: utimensat: Correct Capsicum required capability rights.
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/vfs_syscalls.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
index 4dafe75..aecf554 100644
--- a/sys/kern/vfs_syscalls.c
+++ b/sys/kern/vfs_syscalls.c
@@ -3405,6 +3405,7 @@ kern_utimensat(struct thread *td, int fd, char *path, enum uio_seg pathseg,
{
struct nameidata nd;
struct timespec ts[2];
+ cap_rights_t rights;
int error, flags;
if (flag & ~AT_SYMLINK_NOFOLLOW)
@@ -3412,8 +3413,9 @@ kern_utimensat(struct thread *td, int fd, char *path, enum uio_seg pathseg,
if ((error = getutimens(tptr, tptrseg, ts, &flags)) != 0)
return (error);
- NDINIT_AT(&nd, LOOKUP, ((flag & AT_SYMLINK_NOFOLLOW) ? NOFOLLOW :
- FOLLOW) | AUDITVNODE1, pathseg, path, fd, td);
+ NDINIT_ATRIGHTS(&nd, LOOKUP, ((flag & AT_SYMLINK_NOFOLLOW) ? NOFOLLOW :
+ FOLLOW) | AUDITVNODE1, pathseg, path, fd,
+ cap_rights_init(&rights, CAP_FUTIMES), td);
if ((error = namei(&nd)) != 0)
return (error);
/*
OpenPOWER on IntegriCloud