Re: [PATCH] ksmbd: remove unnecessary conditions

Sergey Senozhatsky
2021-09-07T08:06:11Z

On (21/09/07 10:34), Dan Carpenter wrote:
>
> id = le32_to_cpu(psid->sub_auth[psid->num_subauth - 1]);
> - if (id >= 0) {
> - /*
> - * Translate raw sid into kuid in the server's user
> - * namespace.
> - */
> - uid = make_kuid(&init_user_ns, id);
> -
> - /* If this is an idmapped mount, apply the idmapping. */
> - uid = kuid_from_mnt(user_ns, uid);
> - if (uid_valid(uid)) {
> - fattr->cf_uid = uid;
> - rc = 0;
> - }
> + /*
> + * Translate raw sid into kuid in the server's user
> + * namespace.
> + */
> + uid = make_kuid(&init_user_ns, id);

Can make_kuid() return INVALID_UID? IOW, uid_valid(uid) here as well?

> +
> + /* If this is an idmapped mount, apply the idmapping. */
> + uid = kuid_from_mnt(user_ns, uid);
> + if (uid_valid(uid)) {
> + fattr->cf_uid = uid;
> + rc = 0;
> }

[..]

> + /*
> + * Translate raw sid into kgid in the server's user
> + * namespace.
> + */
> + gid = make_kgid(&init_user_ns, id);

Ditto.

> + /* If this is an idmapped mount, apply the idmapping. */
> + gid = kgid_from_mnt(user_ns, gid);
> + if (gid_valid(gid)) {
> + fattr->cf_gid = gid;
> + rc = 0;