diff options
author | maxim <maxim@FreeBSD.org> | 2002-03-14 11:18:42 +0000 |
---|---|---|
committer | maxim <maxim@FreeBSD.org> | 2002-03-14 11:18:42 +0000 |
commit | 92c24ff925c748759ab5313202a4da1b78ef2d4b (patch) | |
tree | 5069efb020d2bbc611965b49b1dc09a2cc3805d5 | |
parent | 1bda6219a26483fe931cfe705c2614da69e2fc73 (diff) | |
download | FreeBSD-src-92c24ff925c748759ab5313202a4da1b78ef2d4b.zip FreeBSD-src-92c24ff925c748759ab5313202a4da1b78ef2d4b.tar.gz |
Be consistent with UFS in a way how devfs_setattr() checks credentials
for chmod(2), chown(2) and utimes(2) with respect to jail(2).
Reviewed by: rwatson, ru
Not objected by: phk
Approved by: ru
-rw-r--r-- | sys/fs/devfs/devfs_vnops.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c index e3c27a5..aac1151 100644 --- a/sys/fs/devfs/devfs_vnops.c +++ b/sys/fs/devfs/devfs_vnops.c @@ -718,7 +718,8 @@ devfs_setattr(ap) if (uid != de->de_uid || gid != de->de_gid) { if (((ap->a_cred->cr_uid != de->de_uid) || uid != de->de_uid || (gid != de->de_gid && !groupmember(gid, ap->a_cred))) && - (error = suser(ap->a_td->td_proc)) != 0) + (error = suser_xxx(NULL, ap->a_td->td_proc, + PRISON_ROOT)) != 0) return (error); de->de_uid = uid; de->de_gid = gid; @@ -735,21 +736,21 @@ devfs_setattr(ap) if (vap->va_mode != (mode_t)VNOVAL) { if ((ap->a_cred->cr_uid != de->de_uid) && - (error = suser(ap->a_td->td_proc))) + (error = suser_xxx(NULL, ap->a_td->td_proc, PRISON_ROOT))) return (error); de->de_mode = vap->va_mode; c = 1; } if (vap->va_atime.tv_sec != VNOVAL) { if ((ap->a_cred->cr_uid != de->de_uid) && - (error = suser(ap->a_td->td_proc))) + (error = suser_xxx(NULL, ap->a_td->td_proc, PRISON_ROOT))) return (error); de->de_atime = vap->va_atime; c = 1; } if (vap->va_mtime.tv_sec != VNOVAL) { if ((ap->a_cred->cr_uid != de->de_uid) && - (error = suser(ap->a_td->td_proc))) + (error = suser_xxx(NULL, ap->a_td->td_proc, PRISON_ROOT))) return (error); de->de_mtime = vap->va_mtime; c = 1; |