Skip to content

Commit

Permalink
Use crgeteuid/ruid/fsuid (and gid) functions where appropriate.
Browse files Browse the repository at this point in the history
Signed-off-by: Massimo Maggi <massimo@mmmm.it>
  • Loading branch information
maxximino committed Mar 27, 2012
1 parent 2008ab8 commit f3ddf21
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 28 deletions.
12 changes: 6 additions & 6 deletions module/zfs/dsl_deleg.c
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ dsl_deleg_can_unallow(char *ddname, nvlist_t *nvp, cred_t *cr)
return (error);

(void) snprintf(idstr, sizeof (idstr), "%lld",
(longlong_t)crgetuid(cr));
(longlong_t)crgeteuid(cr));

while ((whopair = nvlist_next_nvpair(nvp, whopair))) {
zfs_deleg_who_type_t type = nvpair_name(whopair)[0];
Expand Down Expand Up @@ -432,13 +432,13 @@ dsl_check_user_access(objset_t *mos, uint64_t zapobj, const char *perm,
uint64_t id;

/* check for user */
id = crgetuid(cr);
id = crgeteuid(cr);
if (dsl_check_access(mos, zapobj,
ZFS_DELEG_USER, checkflag, &id, perm) == 0)
return (0);

/* check for users primary group */
id = crgetgid(cr);
id = crgetegid(cr);
if (dsl_check_access(mos, zapobj,
ZFS_DELEG_GROUP, checkflag, &id, perm) == 0)
return (0);
Expand Down Expand Up @@ -513,11 +513,11 @@ dsl_load_user_sets(objset_t *mos, uint64_t zapobj, avl_tree_t *avl,
int ngids, i;
uint64_t id;

id = crgetuid(cr);
id = crgeteuid(cr);
(void) dsl_load_sets(mos, zapobj,
ZFS_DELEG_USER_SETS, checkflag, &id, avl);

id = crgetgid(cr);
id = crgetegid(cr);
(void) dsl_load_sets(mos, zapobj,
ZFS_DELEG_GROUP_SETS, checkflag, &id, avl);

Expand Down Expand Up @@ -711,7 +711,7 @@ void
dsl_deleg_set_create_perms(dsl_dir_t *sdd, dmu_tx_t *tx, cred_t *cr)
{
dsl_dir_t *dd;
uint64_t uid = crgetuid(cr);
uint64_t uid = crgeteuid(cr);

if (spa_version(dmu_objset_spa(sdd->dd_pool->dp_meta_objset)) <
SPA_VERSION_DELEGATED_PERMS)
Expand Down
10 changes: 5 additions & 5 deletions module/zfs/zfs_acl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1789,7 +1789,7 @@ zfs_acl_ids_create(znode_t *dzp, int flag, vattr_t *vap, cred_t *cr,
} else {
acl_ids->z_fgid = zfs_fuid_create_cred(zsb,
ZFS_GROUP, cr, &acl_ids->z_fuidp);
gid = crgetgid(cr);
gid = crgetfsgid(cr);
}
}
}
Expand Down Expand Up @@ -2198,7 +2198,7 @@ zfs_zaccess_aces_check(znode_t *zp, uint32_t *working_mode,
zfs_sb_t *zsb = ZTOZSB(zp);
zfs_acl_t *aclp;
int error;
uid_t uid = crgetuid(cr);
uid_t uid = crgetfsuid(cr);
uint64_t who;
uint16_t type, iflags;
uint16_t entry_type;
Expand Down Expand Up @@ -2382,7 +2382,7 @@ zfs_fastaccesschk_execute(znode_t *zdp, cred_t *cr)
boolean_t owner = B_FALSE;
boolean_t groupmbr = B_FALSE;
boolean_t is_attr;
uid_t uid = crgetuid(cr);
uid_t uid = crgetfsuid(cr);
int error;

if (zdp->z_pflags & ZFS_AV_QUARANTINED)
Expand Down Expand Up @@ -2507,7 +2507,7 @@ zfs_zaccess(znode_t *zp, int mode, int flags, boolean_t skipaclchk, cred_t *cr)

working_mode = mode;
if ((working_mode & (ACE_READ_ACL|ACE_READ_ATTRIBUTES)) &&
owner == crgetuid(cr))
owner == crgetfsuid(cr))
working_mode &= ~(ACE_READ_ACL|ACE_READ_ATTRIBUTES);

if (working_mode & (ACE_READ_DATA|ACE_READ_NAMED_ATTRS|
Expand Down Expand Up @@ -2549,7 +2549,7 @@ zfs_zaccess(znode_t *zp, int mode, int flags, boolean_t skipaclchk, cred_t *cr)
ASSERT(working_mode != 0);

if ((working_mode & (ACE_READ_ACL|ACE_READ_ATTRIBUTES) &&
owner == crgetuid(cr)))
owner == crgetfsuid(cr)))
working_mode &= ~(ACE_READ_ACL|ACE_READ_ATTRIBUTES);

if (working_mode & (ACE_READ_DATA|ACE_READ_NAMED_ATTRS|
Expand Down
2 changes: 1 addition & 1 deletion module/zfs/zfs_dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -1115,7 +1115,7 @@ zfs_sticky_remove_access(znode_t *zdp, znode_t *zp, cred_t *cr)
downer = zfs_fuid_map_id(zsb, zdp->z_uid, cr, ZFS_OWNER);
fowner = zfs_fuid_map_id(zsb, zp->z_uid, cr, ZFS_OWNER);

if ((uid = crgetuid(cr)) == downer || uid == fowner ||
if ((uid = crgetfsuid(cr)) == downer || uid == fowner ||
(S_ISDIR(ZTOI(zp)->i_mode) &&
zfs_zaccess(zp, ACE_WRITE_DATA, 0, B_FALSE, cr) == 0))
return (0);
Expand Down
4 changes: 2 additions & 2 deletions module/zfs/zfs_fuid.c
Original file line number Diff line number Diff line change
Expand Up @@ -513,7 +513,7 @@ zfs_fuid_create_cred(zfs_sb_t *zsb, zfs_fuid_type_t type,
ksid = crgetsid(cr, (type == ZFS_OWNER) ? KSID_OWNER : KSID_GROUP);

if (!zsb->z_use_fuids || (ksid == NULL)) {
id = (type == ZFS_OWNER) ? crgetuid(cr) : crgetgid(cr);
id = (type == ZFS_OWNER) ? crgetfsuid(cr) : crgetfsgid(cr);

if (IS_EPHEMERAL(id))
return ((type == ZFS_OWNER) ? UID_NOBODY : GID_NOBODY);
Expand All @@ -524,7 +524,7 @@ zfs_fuid_create_cred(zfs_sb_t *zsb, zfs_fuid_type_t type,
/*
* ksid is present and FUID is supported
*/
id = (type == ZFS_OWNER) ? ksid_getid(ksid) : crgetgid(cr);
id = (type == ZFS_OWNER) ? ksid_getid(ksid) : crgetfsgid(cr);

if (!IS_EPHEMERAL(id))
return ((uint64_t)id);
Expand Down
2 changes: 1 addition & 1 deletion module/zfs/zfs_ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -892,7 +892,7 @@ zfs_secpolicy_userspace_one(zfs_cmd_t *zc, cred_t *cr)
*/
if (zc->zc_objset_type == ZFS_PROP_USERUSED ||
zc->zc_objset_type == ZFS_PROP_USERQUOTA) {
if (zc->zc_guid == crgetuid(cr))
if (zc->zc_guid == crgetfsuid(cr))
return (0);
} else {
if (groupmember(zc->zc_guid, cr))
Expand Down
18 changes: 9 additions & 9 deletions module/zfs/zfs_vnops.c
Original file line number Diff line number Diff line change
Expand Up @@ -1217,8 +1217,8 @@ zfs_create(struct inode *dip, char *name, vattr_t *vap, int excl,
* make sure file system is at proper version
*/

gid = crgetgid(cr);
uid = crgetuid(cr);
gid = crgetfsgid(cr);
uid = crgetfsuid(cr);

if (zsb->z_use_fuids == B_FALSE &&
(vsecp || IS_EPHEMERAL(uid) || IS_EPHEMERAL(gid)))
Expand All @@ -1237,7 +1237,7 @@ zfs_create(struct inode *dip, char *name, vattr_t *vap, int excl,

if (vap->va_mask & ATTR_XVATTR) {
if ((error = secpolicy_xvattr((xvattr_t *)vap,
crgetuid(cr), cr, vap->va_mode)) != 0) {
crgetfsuid(cr), cr, vap->va_mode)) != 0) {
ZFS_EXIT(zsb);
return (error);
}
Expand Down Expand Up @@ -1639,7 +1639,7 @@ zfs_mkdir(struct inode *dip, char *dirname, vattr_t *vap, struct inode **ipp,
int error;
int zf = ZNEW;
uid_t uid;
gid_t gid = crgetgid(cr);
gid_t gid = crgetfsgid(cr);
zfs_acl_ids_t acl_ids;
boolean_t fuid_dirtied;

Expand All @@ -1650,7 +1650,7 @@ zfs_mkdir(struct inode *dip, char *dirname, vattr_t *vap, struct inode **ipp,
* make sure file system is at proper version
*/

uid = crgetuid(cr);
uid = crgetfsuid(cr);
if (zsb->z_use_fuids == B_FALSE &&
(vsecp || IS_EPHEMERAL(uid) || IS_EPHEMERAL(gid)))
return (EINVAL);
Expand All @@ -1674,7 +1674,7 @@ zfs_mkdir(struct inode *dip, char *dirname, vattr_t *vap, struct inode **ipp,

if (vap->va_mask & ATTR_XVATTR) {
if ((error = secpolicy_xvattr((xvattr_t *)vap,
crgetuid(cr), cr, vap->va_mode)) != 0) {
crgetfsuid(cr), cr, vap->va_mode)) != 0) {
ZFS_EXIT(zsb);
return (error);
}
Expand Down Expand Up @@ -2139,7 +2139,7 @@ zfs_getattr(struct inode *ip, vattr_t *vap, int flags, cred_t *cr)
* always be allowed to read basic attributes of file.
*/
if (!(zp->z_pflags & ZFS_ACL_TRIVIAL) &&
(vap->va_uid != crgetuid(cr))) {
(vap->va_uid != crgetfsuid(cr))) {
if ((error = zfs_zaccess(zp, ACE_READ_ATTRIBUTES, 0,
skipaclchk, cr))) {
ZFS_EXIT(zsb);
Expand Down Expand Up @@ -2516,7 +2516,7 @@ zfs_setattr(struct inode *ip, vattr_t *vap, int flags, cred_t *cr)
* Take ownership or chgrp to group we are a member of
*/

take_owner = (mask & ATTR_UID) && (vap->va_uid == crgetuid(cr));
take_owner = (mask & ATTR_UID) && (vap->va_uid == crgetfsuid(cr));
take_group = (mask & ATTR_GID) &&
zfs_groupmember(zsb, vap->va_gid, cr);

Expand Down Expand Up @@ -3688,7 +3688,7 @@ zfs_link(struct inode *tdip, struct inode *sip, char *name, cred_t *cr)
}

owner = zfs_fuid_map_id(zsb, szp->z_uid, cr, ZFS_OWNER);
if (owner != crgetuid(cr) && secpolicy_basic_link(cr) != 0) {
if (owner != crgetfsuid(cr) && secpolicy_basic_link(cr) != 0) {
ZFS_EXIT(zsb);
return (EPERM);
}
Expand Down
8 changes: 4 additions & 4 deletions module/zfs/zfs_znode.c
Original file line number Diff line number Diff line change
Expand Up @@ -176,8 +176,8 @@ zfs_create_share_dir(zfs_sb_t *zsb, dmu_tx_t *tx)

vattr.va_mask = AT_MODE|AT_UID|AT_GID|AT_TYPE;
vattr.va_mode = S_IFDIR | 0555;
vattr.va_uid = crgetuid(kcred);
vattr.va_gid = crgetgid(kcred);
vattr.va_uid = crgetfsuid(kcred);
vattr.va_gid = crgetfsgid(kcred);

sharezp = kmem_cache_alloc(znode_cache, KM_PUSHPAGE);
sharezp->z_moved = 0;
Expand Down Expand Up @@ -1499,8 +1499,8 @@ zfs_create_fs(objset_t *os, cred_t *cr, nvlist_t *zplprops, dmu_tx_t *tx)
*/
vattr.va_mask = ATTR_MODE|ATTR_UID|ATTR_GID;
vattr.va_mode = S_IFDIR|0755;
vattr.va_uid = crgetuid(cr);
vattr.va_gid = crgetgid(cr);
vattr.va_uid = crgetfsuid(cr);
vattr.va_gid = crgetfsgid(cr);

rootzp = kmem_cache_alloc(znode_cache, KM_SLEEP);
rootzp->z_moved = 0;
Expand Down

0 comments on commit f3ddf21

Please sign in to comment.