]> err.no Git - linux-2.6/commit
kobject: kobj->k_name verification fix
authorMartin Stoilov <mstoilov@odesys.com>
Tue, 6 Feb 2007 00:15:23 +0000 (16:15 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 16 Feb 2007 23:19:17 +0000 (15:19 -0800)
commit1350770112bd9bd5696cb52deb712370012d80e0
tree56c0c4636bb153114d4904c98496aa92bfa1a9c9
parentbb289bc46f3f0abeae58665242f0edb0c6ec501f
kobject: kobj->k_name verification fix

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: Martin Stoilov <mstoilov@odesys.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
lib/kobject.c