xref: /freebsd/contrib/ntp/libntp/strdup.c (revision ce265a549db8baf2b7fc2b171e9cc511a6d7552d)
1ce265a54SOllivier Robert #include "ntp_malloc.h"
2ce265a54SOllivier Robert 
3ce265a54SOllivier Robert #if !HAVE_STRDUP
4224ba2bdSOllivier Robert 
5224ba2bdSOllivier Robert #define NULL 0
6224ba2bdSOllivier Robert 
7ce265a54SOllivier Robert char *strdup(const char *s);
8ce265a54SOllivier Robert 
9224ba2bdSOllivier Robert char *
10224ba2bdSOllivier Robert strdup(
11224ba2bdSOllivier Robert 	const char *s
12224ba2bdSOllivier Robert 	)
13224ba2bdSOllivier Robert {
14224ba2bdSOllivier Robert         char *cp;
15224ba2bdSOllivier Robert 
16224ba2bdSOllivier Robert         if (s) {
17224ba2bdSOllivier Robert                 cp = (char *) malloc((unsigned) (strlen(s)+1));
18224ba2bdSOllivier Robert                 if (cp) {
19224ba2bdSOllivier Robert                         (void) strcpy(cp, s);
20224ba2bdSOllivier Robert 		}
21224ba2bdSOllivier Robert         } else {
22224ba2bdSOllivier Robert                 cp = (char *) NULL;
23224ba2bdSOllivier Robert 	}
24224ba2bdSOllivier Robert         return(cp);
25224ba2bdSOllivier Robert }
26ce265a54SOllivier Robert #else
27ce265a54SOllivier Robert int strdup_bs;
28ce265a54SOllivier Robert #endif
29