Re: [PATCH 27/43] userns: Use uid_eq gid_eq helpers when comparing kuids and kgids in the vfs

Eric W. Biederman
2012-04-21T00:02:00Z

"Serge E. Hallyn" <serge@hallyn.com> writes:

> Quoting Eric W. Beiderman (ebiederm@xmission.com):
>> From: Eric W. Biederman <ebiederm@xmission.com>
>>
>> Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
>> ---
>> fs/attr.c | 8 ++++----
>> fs/exec.c | 10 +++++-----
>> fs/fcntl.c | 6 +++---
>> fs/ioprio.c | 4 ++--
>> fs/locks.c | 2 +-
>> fs/namei.c | 8 ++++----
>> include/linux/quotaops.h | 4 ++--
>> 7 files changed, 21 insertions(+), 21 deletions(-)
>>
>> diff --git a/fs/attr.c b/fs/attr.c
>> index 73f69a6..2f094c6 100644
>> --- a/fs/attr.c
>> +++ b/fs/attr.c
>> @@ -47,14 +47,14 @@ int inode_change_ok(const struct inode *inode, struct iattr *attr)
>>
>> /* Make sure a caller can chown. */
>> if ((ia_valid & ATTR_UID) &&
>> - (current_fsuid() != inode->i_uid ||
>> - attr->ia_uid != inode->i_uid) && !capable(CAP_CHOWN))
>> + (!uid_eq(current_fsuid(), inode->i_uid) ||
>> + !uid_eq(attr->ia_uid, inode->i_uid)) && !capable(CAP_CHOWN))
>> return -EPERM;
>>
>> /* Make sure caller can chgrp. */
>> if ((ia_valid & ATTR_GID) &&
>> - (current_fsuid() != inode->i_uid ||
>> - (!in_group_p(attr->ia_gid) && attr->ia_gid != inode->i_gid)) &&
>> + (!uid_eq(current_fsuid(), inode->i_uid) ||
>> + (!in_group_p(attr->ia_gid) && gid_eq(attr->ia_gid, inode->i_gid))) &&
>
> This should be !gid_eq() ?

Yes. Thank you, it is now fixed in my tree.

Eric