summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2013-02-17 11:53:51 +0000
committerpjd <pjd@FreeBSD.org>2013-02-17 11:53:51 +0000
commitc0b1af2f13016922d3c04f5cf19064b8e153b20c (patch)
tree30204915a106dde7cd0eaacf53247d1f51a3658a
parent06ac2f97fde6f20b6391870a305f08e437a785ba (diff)
downloadFreeBSD-src-c0b1af2f13016922d3c04f5cf19064b8e153b20c.zip
FreeBSD-src-c0b1af2f13016922d3c04f5cf19064b8e153b20c.tar.gz
- Require CAP_FSYNC capability right when opening a file with O_SYNC or O_FSYNC
flags. - While here simplify check for locking flags. Sponsored by: The FreeBSD Foundation
-rw-r--r--sys/kern/vfs_syscalls.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
index dd1232c..12855a2 100644
--- a/sys/kern/vfs_syscalls.c
+++ b/sys/kern/vfs_syscalls.c
@@ -980,7 +980,10 @@ flags_to_rights(int flags)
if (flags & O_TRUNC)
rights |= CAP_FTRUNCATE;
- if ((flags & O_EXLOCK) || (flags & O_SHLOCK))
+ if (flags & (O_SYNC | O_FSYNC))
+ rights |= CAP_FSYNC;
+
+ if (flags & (O_EXLOCK | O_SHLOCK))
rights |= CAP_FLOCK;
return (rights);
OpenPOWER on IntegriCloud