• Martin Stoilov's avatar
    kobject: kobj->k_name verification fix · 13507701
    Martin Stoilov authored
    The function 'kobject_add' tries to verify the name of
    a new kobject instance is properly set before continuing.
        if (!kobj->k_name)
            kobj->k_name = kobj->name;
        if (!kobj->k_name) {
            pr_debug("kobject attempted to be registered with no name!\n");
            WARN_ON(1);
            return -EINVAL;
        }
    The statement:
        if (!kobj->k_name) {
            pr_debug("kobject attempted to be registered with no name!\n");
            WARN_ON(1);
            return -EINVAL;
        }
    is useless the way it is right now, because it can never be true. I
    think the
    code was intended to be:
        if (!kobj->k_name)
            kobj->k_name = kobj->name;
        if (!*kobj->k_name) {
            pr_debug("kobject attempted to be registered with no name!\n");
            WARN_ON(1);
            return -EINVAL;
        }
    because this would make sure the kobj->name buffer has something in it.
    So the missing '*' is just a typo. Although, I would much prefer
    expression like:
        if (*kobj->k_name == '\0') {
            pr_debug("kobject attempted to be registered with no name!\n");
            WARN_ON(1);
            return -EINVAL;
        }
    
    because this would've made the intention clear, in this patch I just restore
    the missing '*' without changing the coding style of the function.
    Signed-off-by: default avatarMartin Stoilov <mstoilov@odesys.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    13507701
kobject.c 14.3 KB