summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_acl_nfs4.c
diff options
context:
space:
mode:
authortrasz <trasz@FreeBSD.org>2009-12-26 11:36:10 +0000
committertrasz <trasz@FreeBSD.org>2009-12-26 11:36:10 +0000
commita78d6a0fdab8ef9df3cfbb1d0b47b6f76cb8a71c (patch)
treeafe50feb8570f29e5e5ee7379ef96a8bd309abfb /sys/kern/subr_acl_nfs4.c
parent690bd6b42878a547aceee0005d5124b3a0a81c04 (diff)
downloadFreeBSD-src-a78d6a0fdab8ef9df3cfbb1d0b47b6f76cb8a71c.zip
FreeBSD-src-a78d6a0fdab8ef9df3cfbb1d0b47b6f76cb8a71c.tar.gz
Now that all the callers seem to be fixed, add KASSERTs to make sure VAPPEND
is not being used improperly.
Diffstat (limited to 'sys/kern/subr_acl_nfs4.c')
-rw-r--r--sys/kern/subr_acl_nfs4.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/kern/subr_acl_nfs4.c b/sys/kern/subr_acl_nfs4.c
index fbd233b..19ac1b0 100644
--- a/sys/kern/subr_acl_nfs4.c
+++ b/sys/kern/subr_acl_nfs4.c
@@ -163,6 +163,14 @@ vaccess_acl_nfs4(enum vtype type, uid_t file_uid, gid_t file_gid,
int denied, explicitly_denied, access_mask, is_directory,
must_be_owner = 0;
+ KASSERT((accmode & ~(VEXEC | VWRITE | VREAD | VADMIN | VAPPEND |
+ VEXPLICIT_DENY | VREAD_NAMED_ATTRS | VWRITE_NAMED_ATTRS |
+ VDELETE_CHILD | VREAD_ATTRIBUTES | VWRITE_ATTRIBUTES | VDELETE |
+ VREAD_ACL | VWRITE_ACL | VWRITE_OWNER | VSYNCHRONIZE)) == 0,
+ ("invalid bit in accmode"));
+ KASSERT((accmode & VAPPEND) == 0 || (accmode & VWRITE),
+ ("VAPPEND without VWRITE"));
+
if (privused != NULL)
*privused = 0;
OpenPOWER on IntegriCloud