diff options
author | pjd <pjd@FreeBSD.org> | 2012-09-25 21:00:36 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2012-09-25 21:00:36 +0000 |
commit | 1d5d62ac360507bc9a69359ccb030896d1daca84 (patch) | |
tree | e086e4f0d87eeed3ff1eae777398c31dbbc95ef4 /sys/kern/vfs_syscalls.c | |
parent | 4816885ff16f345a6e3c35cbfce66fedc724eeb0 (diff) | |
download | FreeBSD-src-1d5d62ac360507bc9a69359ccb030896d1daca84.zip FreeBSD-src-1d5d62ac360507bc9a69359ccb030896d1daca84.tar.gz |
Require CAP_DELETE on directory descriptor for unlinkat(2).
Sponsored by: FreeBSD Foundation
MFC after: 2 weeks
Diffstat (limited to 'sys/kern/vfs_syscalls.c')
-rw-r--r-- | sys/kern/vfs_syscalls.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index f6e3893..c47af7a 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -1881,8 +1881,8 @@ kern_unlinkat(struct thread *td, int fd, char *path, enum uio_seg pathseg, restart: bwillwrite(); - NDINIT_AT(&nd, DELETE, LOCKPARENT | LOCKLEAF | MPSAFE | AUDITVNODE1, - pathseg, path, fd, td); + NDINIT_ATRIGHTS(&nd, DELETE, LOCKPARENT | LOCKLEAF | MPSAFE | + AUDITVNODE1, pathseg, path, fd, CAP_DELETE, td); if ((error = namei(&nd)) != 0) return (error == EINVAL ? EPERM : error); vfslocked = NDHASGIANT(&nd); |