summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChuck Ebbert <76306.1226@compuserve.com>2006-01-12 20:02:00 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2006-02-06 12:17:17 -0800
commitb365b3daf2a9e2a8b002ea9fef877af1c71513fd (patch)
treedcd673d830b61ee37ab433af60c0f81ffaa86779
parentc171fef5c8566cf5f57877e7832fa696ecdf5228 (diff)
downloadlinux-stable-b365b3daf2a9e2a8b002ea9fef877af1c71513fd.tar.gz
linux-stable-b365b3daf2a9e2a8b002ea9fef877af1c71513fd.tar.bz2
linux-stable-b365b3daf2a9e2a8b002ea9fef877af1c71513fd.zip
[PATCH] kobject: don't oops on null kobject.name
kobject_get_path() will oops if one of the component names is NULL. Fix that by returning NULL instead of oopsing. Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--lib/kobject.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/kobject.c b/lib/kobject.c
index fe4ae36ce960..efe67fa96a71 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -72,6 +72,8 @@ static int get_kobj_path_length(struct kobject *kobj)
* Add 1 to strlen for leading '/' of each level.
*/
do {
+ if (kobject_name(parent) == NULL)
+ return 0;
length += strlen(kobject_name(parent)) + 1;
parent = parent->parent;
} while (parent);
@@ -107,6 +109,8 @@ char *kobject_get_path(struct kobject *kobj, gfp_t gfp_mask)
int len;
len = get_kobj_path_length(kobj);
+ if (len == 0)
+ return NULL;
path = kmalloc(len, gfp_mask);
if (!path)
return NULL;