svn commit: r363893 - in head/sys: cddl/contrib/opensolaris/uts/common/fs/zfs fs/cd9660 fs/devfs fs/ext2fs fs/fuse fs/msdosfs fs/nfsclient fs/pseudofs fs/smbfs fs/tmpfs fs/udf kern sys ufs/ufs
Mateusz Guzik
mjg at FreeBSD.org
Wed Aug 5 09:27:07 UTC 2020
Author: mjg
Date: Wed Aug 5 09:27:03 2020
New Revision: 363893
URL: https://svnweb.freebsd.org/changeset/base/363893
Log:
vfs: remove the obsolete privused argument from vaccess
This brings argument count down to 6, which is passable without the
stack on amd64.
Modified:
head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
head/sys/fs/cd9660/cd9660_vnops.c
head/sys/fs/devfs/devfs_vnops.c
head/sys/fs/ext2fs/ext2_vnops.c
head/sys/fs/fuse/fuse_internal.c
head/sys/fs/msdosfs/msdosfs_vnops.c
head/sys/fs/nfsclient/nfs_clvnops.c
head/sys/fs/pseudofs/pseudofs_vnops.c
head/sys/fs/smbfs/smbfs_vnops.c
head/sys/fs/tmpfs/tmpfs_vnops.c
head/sys/fs/udf/udf_vnops.c
head/sys/kern/subr_acl_nfs4.c
head/sys/kern/subr_acl_posix1e.c
head/sys/kern/uipc_mqueue.c
head/sys/kern/uipc_sem.c
head/sys/kern/uipc_shm.c
head/sys/kern/vfs_subr.c
head/sys/sys/vnode.h
head/sys/ufs/ufs/ufs_vnops.c
Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -4941,7 +4941,7 @@ zfs_freebsd_access(ap)
accmode = ap->a_accmode & ~(VREAD|VWRITE|VEXEC|VAPPEND);
if (accmode != 0) {
error = vaccess(vp->v_type, zp->z_mode, zp->z_uid,
- zp->z_gid, accmode, ap->a_cred, NULL);
+ zp->z_gid, accmode, ap->a_cred);
}
}
Modified: head/sys/fs/cd9660/cd9660_vnops.c
==============================================================================
--- head/sys/fs/cd9660/cd9660_vnops.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/fs/cd9660/cd9660_vnops.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -158,7 +158,7 @@ cd9660_access(ap)
}
return (vaccess(vp->v_type, ip->inode.iso_mode, ip->inode.iso_uid,
- ip->inode.iso_gid, ap->a_accmode, ap->a_cred, NULL));
+ ip->inode.iso_gid, ap->a_accmode, ap->a_cred));
}
static int
Modified: head/sys/fs/devfs/devfs_vnops.c
==============================================================================
--- head/sys/fs/devfs/devfs_vnops.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/fs/devfs/devfs_vnops.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -533,7 +533,7 @@ devfs_access(struct vop_access_args *ap)
de = de->de_dir;
error = vaccess(vp->v_type, de->de_mode, de->de_uid, de->de_gid,
- ap->a_accmode, ap->a_cred, NULL);
+ ap->a_accmode, ap->a_cred);
if (error == 0)
return (0);
if (error != EACCES)
Modified: head/sys/fs/ext2fs/ext2_vnops.c
==============================================================================
--- head/sys/fs/ext2fs/ext2_vnops.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/fs/ext2fs/ext2_vnops.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -348,7 +348,7 @@ ext2_access(struct vop_access_args *ap)
return (EPERM);
error = vaccess(vp->v_type, ip->i_mode, ip->i_uid, ip->i_gid,
- ap->a_accmode, ap->a_cred, NULL);
+ ap->a_accmode, ap->a_cred);
return (error);
}
Modified: head/sys/fs/fuse/fuse_internal.c
==============================================================================
--- head/sys/fs/fuse/fuse_internal.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/fs/fuse/fuse_internal.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -208,7 +208,7 @@ fuse_internal_access(struct vnode *vp,
fuse_internal_getattr(vp, &va, cred, td);
return vaccess(vp->v_type, va.va_mode, va.va_uid,
- va.va_gid, mode, cred, NULL);
+ va.va_gid, mode, cred);
}
if (mode & VADMIN) {
Modified: head/sys/fs/msdosfs/msdosfs_vnops.c
==============================================================================
--- head/sys/fs/msdosfs/msdosfs_vnops.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/fs/msdosfs/msdosfs_vnops.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -250,7 +250,7 @@ msdosfs_access(struct vop_access_args *ap)
}
return (vaccess(vp->v_type, file_mode, pmp->pm_uid, pmp->pm_gid,
- ap->a_accmode, ap->a_cred, NULL));
+ ap->a_accmode, ap->a_cred));
}
static int
Modified: head/sys/fs/nfsclient/nfs_clvnops.c
==============================================================================
--- head/sys/fs/nfsclient/nfs_clvnops.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/fs/nfsclient/nfs_clvnops.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -3393,8 +3393,8 @@ nfsspec_access(struct vop_access_args *ap)
error = VOP_GETATTR(vp, vap, cred);
if (error)
goto out;
- error = vaccess(vp->v_type, vap->va_mode, vap->va_uid, vap->va_gid,
- accmode, cred, NULL);
+ error = vaccess(vp->v_type, vap->va_mode, vap->va_uid, vap->va_gid,
+ accmode, cred);
out:
return error;
}
Modified: head/sys/fs/pseudofs/pseudofs_vnops.c
==============================================================================
--- head/sys/fs/pseudofs/pseudofs_vnops.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/fs/pseudofs/pseudofs_vnops.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -167,8 +167,8 @@ pfs_access(struct vop_access_args *va)
error = VOP_GETATTR(vn, &vattr, va->a_cred);
if (error)
PFS_RETURN (error);
- error = vaccess(vn->v_type, vattr.va_mode, vattr.va_uid,
- vattr.va_gid, va->a_accmode, va->a_cred, NULL);
+ error = vaccess(vn->v_type, vattr.va_mode, vattr.va_uid, vattr.va_gid,
+ va->a_accmode, va->a_cred);
PFS_RETURN (error);
}
Modified: head/sys/fs/smbfs/smbfs_vnops.c
==============================================================================
--- head/sys/fs/smbfs/smbfs_vnops.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/fs/smbfs/smbfs_vnops.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -141,7 +141,7 @@ smbfs_access(ap)
}
mpmode = vp->v_type == VREG ? smp->sm_file_mode : smp->sm_dir_mode;
return (vaccess(vp->v_type, mpmode, smp->sm_uid,
- smp->sm_gid, ap->a_accmode, ap->a_cred, NULL));
+ smp->sm_gid, ap->a_accmode, ap->a_cred));
}
/* ARGSUSED */
Modified: head/sys/fs/tmpfs/tmpfs_vnops.c
==============================================================================
--- head/sys/fs/tmpfs/tmpfs_vnops.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/fs/tmpfs/tmpfs_vnops.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -396,8 +396,8 @@ tmpfs_access(struct vop_access_args *v)
goto out;
}
- error = vaccess(vp->v_type, node->tn_mode, node->tn_uid,
- node->tn_gid, accmode, cred, NULL);
+ error = vaccess(vp->v_type, node->tn_mode, node->tn_uid, node->tn_gid,
+ accmode, cred);
out:
MPASS(VOP_ISLOCKED(vp));
Modified: head/sys/fs/udf/udf_vnops.c
==============================================================================
--- head/sys/fs/udf/udf_vnops.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/fs/udf/udf_vnops.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -180,7 +180,7 @@ udf_access(struct vop_access_args *a)
mode = udf_permtomode(node);
return (vaccess(vp->v_type, mode, node->fentry->uid, node->fentry->gid,
- accmode, a->a_cred, NULL));
+ accmode, a->a_cred));
}
static int
Modified: head/sys/kern/subr_acl_nfs4.c
==============================================================================
--- head/sys/kern/subr_acl_nfs4.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/kern/subr_acl_nfs4.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -172,7 +172,7 @@ _acl_denies(const struct acl *aclp, int access_mask, s
int
vaccess_acl_nfs4(enum vtype type, uid_t file_uid, gid_t file_gid,
- struct acl *aclp, accmode_t accmode, struct ucred *cred, int *privused)
+ struct acl *aclp, accmode_t accmode, struct ucred *cred)
{
accmode_t priv_granted = 0;
int denied, explicitly_denied, access_mask, is_directory,
@@ -187,9 +187,6 @@ vaccess_acl_nfs4(enum vtype type, uid_t file_uid, gid_
KASSERT((accmode & VAPPEND) == 0 || (accmode & VWRITE),
("VAPPEND without VWRITE"));
- if (privused != NULL)
- *privused = 0;
-
if (accmode & VADMIN)
must_be_owner = 1;
@@ -289,9 +286,6 @@ vaccess_acl_nfs4(enum vtype type, uid_t file_uid, gid_
priv_granted |= VSTAT_PERMS;
if ((accmode & priv_granted) == accmode) {
- if (privused != NULL)
- *privused = 1;
-
return (0);
}
Modified: head/sys/kern/subr_acl_posix1e.c
==============================================================================
--- head/sys/kern/subr_acl_posix1e.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/kern/subr_acl_posix1e.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -57,7 +57,7 @@ __FBSDID("$FreeBSD$");
*/
int
vaccess_acl_posix1e(enum vtype type, uid_t file_uid, gid_t file_gid,
- struct acl *acl, accmode_t accmode, struct ucred *cred, int *privused)
+ struct acl *acl, accmode_t accmode, struct ucred *cred)
{
struct acl_entry *acl_other, *acl_mask;
accmode_t dac_granted;
@@ -77,8 +77,6 @@ vaccess_acl_posix1e(enum vtype type, uid_t file_uid, g
* privileges to use may be ambiguous due to "best match", in which
* case fall back on first match for the time being.
*/
- if (privused != NULL)
- *privused = 0;
/*
* Determine privileges now, but don't apply until we've found a DAC
@@ -142,8 +140,6 @@ vaccess_acl_posix1e(enum vtype type, uid_t file_uid, g
*/
if ((accmode & (dac_granted | priv_granted)) ==
accmode) {
- if (privused != NULL)
- *privused = 1;
return (0);
}
goto error;
@@ -220,8 +216,6 @@ vaccess_acl_posix1e(enum vtype type, uid_t file_uid, g
accmode)
goto error;
- if (privused != NULL)
- *privused = 1;
return (0);
}
}
@@ -303,8 +297,6 @@ vaccess_acl_posix1e(enum vtype type, uid_t file_uid, g
!= accmode)
break;
- if (privused != NULL)
- *privused = 1;
return (0);
case ACL_GROUP:
@@ -327,8 +319,6 @@ vaccess_acl_posix1e(enum vtype type, uid_t file_uid, g
!= accmode)
break;
- if (privused != NULL)
- *privused = 1;
return (0);
default:
@@ -359,8 +349,6 @@ vaccess_acl_posix1e(enum vtype type, uid_t file_uid, g
* XXXRW: Do privilege lookup here.
*/
if ((accmode & (dac_granted | priv_granted)) == accmode) {
- if (privused != NULL)
- *privused = 1;
return (0);
}
Modified: head/sys/kern/uipc_mqueue.c
==============================================================================
--- head/sys/kern/uipc_mqueue.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/kern/uipc_mqueue.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -1178,8 +1178,8 @@ mqfs_access(struct vop_access_args *ap)
error = VOP_GETATTR(vp, &vattr, ap->a_cred);
if (error)
return (error);
- error = vaccess(vp->v_type, vattr.va_mode, vattr.va_uid,
- vattr.va_gid, ap->a_accmode, ap->a_cred, NULL);
+ error = vaccess(vp->v_type, vattr.va_mode, vattr.va_uid, vattr.va_gid,
+ ap->a_accmode, ap->a_cred);
return (error);
}
@@ -2088,7 +2088,7 @@ kern_kmq_open(struct thread *td, const char *upath, in
if (flags & FWRITE)
accmode |= VWRITE;
error = vaccess(VREG, pn->mn_mode, pn->mn_uid,
- pn->mn_gid, accmode, td->td_ucred, NULL);
+ pn->mn_gid, accmode, td->td_ucred);
}
}
@@ -2566,7 +2566,7 @@ mqf_chmod(struct file *fp, mode_t mode, struct ucred *
pn = fp->f_data;
sx_xlock(&mqfs_data.mi_lock);
error = vaccess(VREG, pn->mn_mode, pn->mn_uid, pn->mn_gid, VADMIN,
- active_cred, NULL);
+ active_cred);
if (error != 0)
goto out;
pn->mn_mode = mode & ACCESSPERMS;
Modified: head/sys/kern/uipc_sem.c
==============================================================================
--- head/sys/kern/uipc_sem.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/kern/uipc_sem.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -212,7 +212,7 @@ ksem_chmod(struct file *fp, mode_t mode, struct ucred
goto out;
#endif
error = vaccess(VREG, ks->ks_mode, ks->ks_uid, ks->ks_gid, VADMIN,
- active_cred, NULL);
+ active_cred);
if (error != 0)
goto out;
ks->ks_mode = mode & ACCESSPERMS;
@@ -362,7 +362,7 @@ ksem_access(struct ksem *ks, struct ucred *ucred)
int error;
error = vaccess(VREG, ks->ks_mode, ks->ks_uid, ks->ks_gid,
- VREAD | VWRITE, ucred, NULL);
+ VREAD | VWRITE, ucred);
if (error)
error = priv_check_cred(ucred, PRIV_SEM_WRITE);
return (error);
Modified: head/sys/kern/uipc_shm.c
==============================================================================
--- head/sys/kern/uipc_shm.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/kern/uipc_shm.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -679,7 +679,7 @@ shm_access(struct shmfd *shmfd, struct ucred *ucred, i
accmode |= VWRITE;
mtx_lock(&shm_timestamp_lock);
error = vaccess(VREG, shmfd->shm_mode, shmfd->shm_uid, shmfd->shm_gid,
- accmode, ucred, NULL);
+ accmode, ucred);
mtx_unlock(&shm_timestamp_lock);
return (error);
}
@@ -1240,8 +1240,8 @@ shm_chmod(struct file *fp, mode_t mode, struct ucred *
if (error != 0)
goto out;
#endif
- error = vaccess(VREG, shmfd->shm_mode, shmfd->shm_uid,
- shmfd->shm_gid, VADMIN, active_cred, NULL);
+ error = vaccess(VREG, shmfd->shm_mode, shmfd->shm_uid, shmfd->shm_gid,
+ VADMIN, active_cred);
if (error != 0)
goto out;
shmfd->shm_mode = mode & ACCESSPERMS;
Modified: head/sys/kern/vfs_subr.c
==============================================================================
--- head/sys/kern/vfs_subr.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/kern/vfs_subr.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -5299,14 +5299,12 @@ vaccess_vexec_smr(mode_t file_mode, uid_t file_uid, gi
/*
* Common filesystem object access control check routine. Accepts a
- * vnode's type, "mode", uid and gid, requested access mode, credentials,
- * and optional call-by-reference privused argument allowing vaccess()
- * to indicate to the caller whether privilege was used to satisfy the
- * request (obsoleted). Returns 0 on success, or an errno on failure.
+ * vnode's type, "mode", uid and gid, requested access mode, and credentials.
+ * Returns 0 on success, or an errno on failure.
*/
int
vaccess(enum vtype type, mode_t file_mode, uid_t file_uid, gid_t file_gid,
- accmode_t accmode, struct ucred *cred, int *privused)
+ accmode_t accmode, struct ucred *cred)
{
accmode_t dac_granted;
accmode_t priv_granted;
@@ -5321,9 +5319,6 @@ vaccess(enum vtype type, mode_t file_mode, uid_t file_
* as requested. If it exists, go with that.
*/
- if (privused != NULL)
- *privused = 0;
-
dac_granted = 0;
/* Check the owner. */
@@ -5409,9 +5404,6 @@ privcheck:
priv_granted |= VADMIN;
if ((accmode & (priv_granted | dac_granted)) == accmode) {
- /* XXX audit: privilege used */
- if (privused != NULL)
- *privused = 1;
return (0);
}
Modified: head/sys/sys/vnode.h
==============================================================================
--- head/sys/sys/vnode.h Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/sys/vnode.h Wed Aug 5 09:27:03 2020 (r363893)
@@ -667,16 +667,14 @@ int vn_commname(struct vnode *vn, char *buf, u_int buf
int vn_path_to_global_path(struct thread *td, struct vnode *vp,
char *path, u_int pathlen);
int vaccess(enum vtype type, mode_t file_mode, uid_t file_uid,
- gid_t file_gid, accmode_t accmode, struct ucred *cred,
- int *privused);
+ gid_t file_gid, accmode_t accmode, struct ucred *cred);
int vaccess_vexec_smr(mode_t file_mode, uid_t file_uid, gid_t file_gid,
struct ucred *cred);
int vaccess_acl_nfs4(enum vtype type, uid_t file_uid, gid_t file_gid,
- struct acl *aclp, accmode_t accmode, struct ucred *cred,
- int *privused);
+ struct acl *aclp, accmode_t accmode, struct ucred *cred);
int vaccess_acl_posix1e(enum vtype type, uid_t file_uid,
gid_t file_gid, struct acl *acl, accmode_t accmode,
- struct ucred *cred, int *privused);
+ struct ucred *cred);
void vattr_null(struct vattr *vap);
int vcount(struct vnode *vp);
void vlazy(struct vnode *);
Modified: head/sys/ufs/ufs/ufs_vnops.c
==============================================================================
--- head/sys/ufs/ufs/ufs_vnops.c Wed Aug 5 09:25:59 2020 (r363892)
+++ head/sys/ufs/ufs/ufs_vnops.c Wed Aug 5 09:27:03 2020 (r363893)
@@ -390,12 +390,12 @@ ufs_accessx(ap)
case 0:
if (type == ACL_TYPE_NFS4) {
error = vaccess_acl_nfs4(vp->v_type, ip->i_uid,
- ip->i_gid, acl, accmode, ap->a_cred, NULL);
+ ip->i_gid, acl, accmode, ap->a_cred);
} else {
error = vfs_unixify_accmode(&accmode);
if (error == 0)
error = vaccess_acl_posix1e(vp->v_type, ip->i_uid,
- ip->i_gid, acl, accmode, ap->a_cred, NULL);
+ ip->i_gid, acl, accmode, ap->a_cred);
}
break;
default:
@@ -410,8 +410,8 @@ ufs_accessx(ap)
*/
error = vfs_unixify_accmode(&accmode);
if (error == 0)
- error = vaccess(vp->v_type, ip->i_mode, ip->i_uid,
- ip->i_gid, accmode, ap->a_cred, NULL);
+ error = vaccess(vp->v_type, ip->i_mode,
+ ip->i_uid, ip->i_gid, accmode, ap->a_cred);
}
acl_free(acl);
@@ -421,7 +421,7 @@ ufs_accessx(ap)
error = vfs_unixify_accmode(&accmode);
if (error == 0)
error = vaccess(vp->v_type, ip->i_mode, ip->i_uid, ip->i_gid,
- accmode, ap->a_cred, NULL);
+ accmode, ap->a_cred);
return (error);
}
More information about the svn-src-all
mailing list