Now that all the callers seem to be fixed, add KASSERTs to make sure VAPPEND
is not being used improperly.
This commit is contained in:
parent
6c9c14c5dc
commit
558e9b5c95
@ -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;
|
||||
|
||||
|
@ -63,6 +63,8 @@ vaccess_acl_posix1e(enum vtype type, uid_t file_uid, gid_t file_gid,
|
||||
|
||||
KASSERT((accmode & ~(VEXEC | VWRITE | VREAD | VADMIN | VAPPEND)) == 0,
|
||||
("invalid bit in accmode"));
|
||||
KASSERT((accmode & VAPPEND) == 0 || (accmode & VWRITE),
|
||||
("VAPPEND without VWRITE"));
|
||||
|
||||
/*
|
||||
* Look for a normal, non-privileged way to access the file/directory
|
||||
|
@ -3534,6 +3534,8 @@ vaccess(enum vtype type, mode_t file_mode, uid_t file_uid, gid_t file_gid,
|
||||
|
||||
KASSERT((accmode & ~(VEXEC | VWRITE | VREAD | VADMIN | VAPPEND)) == 0,
|
||||
("invalid bit in accmode"));
|
||||
KASSERT((accmode & VAPPEND) == 0 || (accmode & VWRITE),
|
||||
("VAPPEND without VWRITE"));
|
||||
|
||||
/*
|
||||
* Look for a normal, non-privileged way to access the file/directory
|
||||
|
Loading…
Reference in New Issue
Block a user