Messages in this thread Patch in this message | | | Subject | Re: [PATCH 2.6.11-rc2] modules: add version and srcversion to sysfs | From | Rusty Russell <> | Date | Thu, 27 Jan 2005 13:10:28 +1100 |
| |
On Wed, 2005-01-26 at 14:32 +0000, Paulo Marques wrote: > Matt Domsch wrote: > > [...] > > > > +static char *strdup(const char *str) ... > Actually, I've just grep'ed the entire tree and there are about 7 > similar implementations all over the place:
Wow, I'd never noticed. Linus, please apply 8)
Rusty. Name: kstrdup Author: Neil Brown, Rusty Russell and Robert Love Status: Trivial
Everyone loves reimplementing strdup. Give them a kstrdup.
Index: linux-2.6.11-rc2-bk4-Misc/include/linux/string.h =================================================================== --- linux-2.6.11-rc2-bk4-Misc.orig/include/linux/string.h 2004-05-10 15:13:54.000000000 +1000 +++ linux-2.6.11-rc2-bk4-Misc/include/linux/string.h 2005-01-27 13:08:30.042035568 +1100 @@ -88,6 +88,8 @@ extern void * memchr(const void *,int,__kernel_size_t); #endif +extern char *kstrdup(const char *s, int gfp); + #ifdef __cplusplus } #endif Index: linux-2.6.11-rc2-bk4-Misc/lib/string.c =================================================================== --- linux-2.6.11-rc2-bk4-Misc.orig/lib/string.c 2005-01-27 11:26:15.000000000 +1100 +++ linux-2.6.11-rc2-bk4-Misc/lib/string.c 2005-01-27 13:08:30.080029792 +1100 @@ -23,6 +23,7 @@ #include <linux/string.h> #include <linux/ctype.h> #include <linux/module.h> +#include <linux/slab.h> #ifndef __HAVE_ARCH_STRNICMP /** @@ -599,3 +600,19 @@ } EXPORT_SYMBOL(memchr); #endif + +/* + * kstrdup - allocate space for and copy an existing string + * + * @s: the string to duplicate + * @gfp: the GFP mask used in the kmalloc() call when allocating memory + */ +char *kstrdup(const char *s, int gfp) +{ + char *buf = kmalloc(strlen(s)+1, gfp); + if (buf) + strcpy(buf, s); + return buf; +} + +EXPORT_SYMBOL(kstrdup); -- A bad analogy is like a leaky screwdriver -- Richard Braakman
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |