From 665280ec3345df7ae0d4d8e452eac90a2bdc29f4 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Tue, 6 May 2008 22:24:04 +0200 Subject: [PATCH] --- yaml --- r: 104713 b: refs/heads/master c: 9f255651fb41c111ee35a2ae632df8ce9bd61def h: refs/heads/master i: 104711: e5c9efaef3e9ef27445dab84993185e8fbc90301 v: v3 --- [refs] | 2 +- trunk/lib/kobject.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index bb21649589cc..9f137b8115fa 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e105b8bfc769b0545b6f0f395179d1e43cbee822 +refs/heads/master: 9f255651fb41c111ee35a2ae632df8ce9bd61def diff --git a/trunk/lib/kobject.c b/trunk/lib/kobject.c index dcade0543bd2..744401571ed7 100644 --- a/trunk/lib/kobject.c +++ b/trunk/lib/kobject.c @@ -216,13 +216,19 @@ static int kobject_add_internal(struct kobject *kobj) static int kobject_set_name_vargs(struct kobject *kobj, const char *fmt, va_list vargs) { - /* Free the old name, if necessary. */ - kfree(kobj->name); + const char *old_name = kobj->name; + char *s; kobj->name = kvasprintf(GFP_KERNEL, fmt, vargs); if (!kobj->name) return -ENOMEM; + /* ewww... some of these buggers have '/' in the name ... */ + s = strchr(kobj->name, '/'); + if (s) + s[0] = '!'; + + kfree(old_name); return 0; }