Messages in this thread | | | Date | Mon, 25 Aug 2003 19:34:45 +0300 | From | Dan Aloni <> | Subject | Re: [BK PATCH] One strdup() to rule them all |
| |
On Mon, Aug 25, 2003 at 12:25:32PM -0400, Jakub Jelinek wrote: > On Mon, Aug 25, 2003 at 07:14:35PM +0300, Dan Aloni wrote: > > diff -Nru a/lib/string.c b/lib/string.c > > --- a/lib/string.c Mon Aug 25 19:03:26 2003 > > +++ b/lib/string.c Mon Aug 25 19:03:26 2003 > > @@ -582,3 +582,19 @@ > > } > > > > #endif > > + > > +/** > > + * strdup - Allocate a copy of a string. > > + * @s: The string to copy. Must not be NULL. > > + * > > + * returns the address of the allocation, or NULL on > > + * error. > > + */ > > +char *strdup(const char *s) > > +{ > > + char *rv = kmalloc(strlen(s)+1, GFP_KERNEL); > > + if (rv) > > + strcpy(rv, s); > > + return rv; > > +} > > +EXPORT_SYMBOL(strdup); > > Better save strlen(s)+1 in a local size_t variable and use memcpy instead > of strcpy.
Maybe, but no optimizations like this are needed for a function such as strdup() which is called relatively rare.
-- Dan Aloni da-x@gmx.net - 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/
| |