diff options
author | Chuck Ebbert <76306.1226@compuserve.com> | 2006-01-12 20:02:00 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-02-06 12:17:17 -0800 |
commit | b365b3daf2a9e2a8b002ea9fef877af1c71513fd (patch) | |
tree | dcd673d830b61ee37ab433af60c0f81ffaa86779 | |
parent | c171fef5c8566cf5f57877e7832fa696ecdf5228 (diff) | |
download | linux-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.c | 4 |
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; |