Commit 4cf0ccd0 authored by Namjae Jeon's avatar Namjae Jeon Committed by Steve French

ksmbd: fix control flow issues in sid_to_id()

Addresses-Coverity reported Control flow issues in sid_to_id()
/fs/ksmbd/smbacl.c: 277 in sid_to_id()
271
272	if (sidtype == SIDOWNER) {
273		kuid_t uid;
274		uid_t id;
275
276		id = le32_to_cpu(psid->sub_auth[psid->num_subauth - 1]);
>>>	CID 1506810:  Control flow issues  (NO_EFFECT)
>>>	This greater-than-or-equal-to-zero comparison of an unsigned value
>>>	is always true. "id >= 0U".
277		if (id >= 0) {
278			/*
279			 * Translate raw sid into kuid in the server's user
280			 * namespace.
281			 */
282			uid = make_kuid(&init_user_ns, id);

Addresses-Coverity: ("Control flow issues")
Signed-off-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent 4ffd5264
...@@ -274,38 +274,34 @@ static int sid_to_id(struct user_namespace *user_ns, ...@@ -274,38 +274,34 @@ static int sid_to_id(struct user_namespace *user_ns,
uid_t id; uid_t id;
id = le32_to_cpu(psid->sub_auth[psid->num_subauth - 1]); id = le32_to_cpu(psid->sub_auth[psid->num_subauth - 1]);
if (id >= 0) { /*
/* * Translate raw sid into kuid in the server's user
* Translate raw sid into kuid in the server's user * namespace.
* namespace. */
*/ uid = make_kuid(&init_user_ns, id);
uid = make_kuid(&init_user_ns, id);
/* If this is an idmapped mount, apply the idmapping. */
/* If this is an idmapped mount, apply the idmapping. */ uid = kuid_from_mnt(user_ns, uid);
uid = kuid_from_mnt(user_ns, uid); if (uid_valid(uid)) {
if (uid_valid(uid)) { fattr->cf_uid = uid;
fattr->cf_uid = uid; rc = 0;
rc = 0;
}
} }
} else { } else {
kgid_t gid; kgid_t gid;
gid_t id; gid_t id;
id = le32_to_cpu(psid->sub_auth[psid->num_subauth - 1]); id = le32_to_cpu(psid->sub_auth[psid->num_subauth - 1]);
if (id >= 0) { /*
/* * Translate raw sid into kgid in the server's user
* Translate raw sid into kgid in the server's user * namespace.
* namespace. */
*/ gid = make_kgid(&init_user_ns, id);
gid = make_kgid(&init_user_ns, id);
/* If this is an idmapped mount, apply the idmapping. */
/* If this is an idmapped mount, apply the idmapping. */ gid = kgid_from_mnt(user_ns, gid);
gid = kgid_from_mnt(user_ns, gid); if (gid_valid(gid)) {
if (gid_valid(gid)) { fattr->cf_gid = gid;
fattr->cf_gid = gid; rc = 0;
rc = 0;
}
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment