mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-07 13:53:24 +00:00
lib/kobject.c: use strreplace()
There's probably not many slashes in the name, but starting over when we see one feels wrong. Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
ff14417c0a
commit
2abf114fc8
@ -257,23 +257,20 @@ static int kobject_add_internal(struct kobject *kobj)
|
|||||||
int kobject_set_name_vargs(struct kobject *kobj, const char *fmt,
|
int kobject_set_name_vargs(struct kobject *kobj, const char *fmt,
|
||||||
va_list vargs)
|
va_list vargs)
|
||||||
{
|
{
|
||||||
const char *old_name = kobj->name;
|
|
||||||
char *s;
|
char *s;
|
||||||
|
|
||||||
if (kobj->name && !fmt)
|
if (kobj->name && !fmt)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
kobj->name = kvasprintf(GFP_KERNEL, fmt, vargs);
|
s = kvasprintf(GFP_KERNEL, fmt, vargs);
|
||||||
if (!kobj->name) {
|
if (!s)
|
||||||
kobj->name = old_name;
|
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
|
||||||
|
|
||||||
/* ewww... some of these buggers have '/' in the name ... */
|
/* ewww... some of these buggers have '/' in the name ... */
|
||||||
while ((s = strchr(kobj->name, '/')))
|
strreplace(s, '/', '!');
|
||||||
s[0] = '!';
|
kfree(kobj->name);
|
||||||
|
kobj->name = s;
|
||||||
|
|
||||||
kfree(old_name);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user