xref: /freebsd/contrib/ntp/libntp/strdup.c (revision b78ee15e9f04ae15c3e1200df974473167524d17)
1 #include <config.h>
2 
3 #include <string.h>
4 #include "ntp_malloc.h"
5 
6 #ifndef HAVE_STRDUP
7 
8 char *strdup(const char *s);
9 
10 char *
11 strdup(
12 	const char *s
13 	)
14 {
15 	size_t	octets;
16 	char *	cp;
17 
18 	if (s) {
19 		octets = 1 + strlen(s);
20 		cp = malloc(octets);
21 		if (NULL != cp)
22 			memcpy(cp, s, octets);
23 	else
24 		cp = NULL;
25 
26 	return(cp);
27 }
28 #else
29 int strdup_c_nonempty_compilation_unit;
30 #endif
31