summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_syscalls.c
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2012-09-25 21:00:36 +0000
committerpjd <pjd@FreeBSD.org>2012-09-25 21:00:36 +0000
commit1d5d62ac360507bc9a69359ccb030896d1daca84 (patch)
treee086e4f0d87eeed3ff1eae777398c31dbbc95ef4 /sys/kern/vfs_syscalls.c
parent4816885ff16f345a6e3c35cbfce66fedc724eeb0 (diff)
downloadFreeBSD-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.c4
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);
OpenPOWER on IntegriCloud