public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] 2.5.47: strdup()
@ 2002-11-16  6:21 Olaf Dietsche
  2002-11-16  6:25 ` Jeff Garzik
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Olaf Dietsche @ 2002-11-16  6:21 UTC (permalink / raw)
  To: linux-kernel; +Cc: trivial

This *untested* patch adds strdup(). There are about five or six
different strdup() implementations in various parts of the kernel.

Regards, Olaf.

diff -urN a/include/linux/string.h b/include/linux/string.h
--- a/include/linux/string.h	Sat Oct  5 18:42:33 2002
+++ b/include/linux/string.h	Sat Nov 16 03:09:42 2002
@@ -15,7 +15,7 @@
 extern char * strpbrk(const char *,const char *);
 extern char * strsep(char **,const char *);
 extern __kernel_size_t strspn(const char *,const char *);
-
+extern char *strdup(const char *);
 
 /*
  * Include machine specific inline routines
diff -urN a/kernel/ksyms.c b/kernel/ksyms.c
--- a/kernel/ksyms.c	Tue Nov 12 17:56:02 2002
+++ b/kernel/ksyms.c	Sat Nov 16 06:53:09 2002
@@ -576,6 +576,7 @@
 EXPORT_SYMBOL(strnicmp);
 EXPORT_SYMBOL(strspn);
 EXPORT_SYMBOL(strsep);
+EXPORT_SYMBOL(strdup);
 
 /* software interrupts */
 EXPORT_SYMBOL(tasklet_init);
diff -urN a/lib/string.c b/lib/string.c
--- a/lib/string.c	Sat Oct  5 18:42:33 2002
+++ b/lib/string.c	Sat Nov 16 07:18:16 2002
@@ -22,6 +22,7 @@
 #include <linux/types.h>
 #include <linux/string.h>
 #include <linux/ctype.h>
+#include <linux/slab.h>
 
 #ifndef __HAVE_ARCH_STRNICMP
 /**
@@ -479,6 +480,20 @@
 		s1++;
 	}
 	return NULL;
+}
+#endif
+
+#ifndef __HAVE_ARCH_STRDUP
+/**
+ * strdup - allocate memory and duplicate a string
+ */
+char *strdup(const char *s)
+{
+	char *p = kmalloc(strlen(s) + 1, GFP_KERNEL);
+	if (p)
+		strcpy(p, s);
+
+	return p;
 }
 #endif
 

^ permalink raw reply	[flat|nested] 12+ messages in thread
* RE: [PATCH] 2.5.47: strdup()
@ 2002-11-16  8:48 Peter Kjellerstedt
  2002-11-16 15:53 ` Olaf Dietsche
  0 siblings, 1 reply; 12+ messages in thread
From: Peter Kjellerstedt @ 2002-11-16  8:48 UTC (permalink / raw)
  To: 'Olaf Dietsche', linux-kernel

> -----Original Message-----
> From: Olaf Dietsche 
> [mailto:olaf.dietsche#list.linux-kernel@t-online.de] 
> Sent: Saturday, November 16, 2002 07:21
> To: linux-kernel@vger.kernel.org
> Cc: trivial@rustcorp.com.au
> Subject: [PATCH] 2.5.47: strdup()
> 
> This *untested* patch adds strdup(). There are about five or six
> different strdup() implementations in various parts of the kernel.
> 
> Regards, Olaf.

[snip]

> +#ifndef __HAVE_ARCH_STRDUP
> +/**
> + * strdup - allocate memory and duplicate a string
> + */
> +char *strdup(const char *s)
> +{
> +	char *p = kmalloc(strlen(s) + 1, GFP_KERNEL);
> +	if (p)
> +		strcpy(p, s);
> +
> +	return p;
>  }
>  #endif

You should make sure s != NULL before doing anything else.

//Peter

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2002-11-18  2:36 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-11-16  6:21 [PATCH] 2.5.47: strdup() Olaf Dietsche
2002-11-16  6:25 ` Jeff Garzik
2002-11-16  6:31 ` Andrew Morton
2002-11-16 15:42   ` Olaf Dietsche
2002-11-17 23:32     ` Werner Almesberger
2002-11-18  2:43       ` Olaf Dietsche
2002-11-16  6:41 ` William Lee Irwin III
2002-11-17  0:08 ` Chris Wedgwood
2002-11-17  1:37   ` Olaf Dietsche
2002-11-17  4:40     ` Chris Wedgwood
  -- strict thread matches above, loose matches on Subject: below --
2002-11-16  8:48 Peter Kjellerstedt
2002-11-16 15:53 ` Olaf Dietsche

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox