diff options
Diffstat (limited to 'libntp/strdup.c')
-rw-r--r-- | libntp/strdup.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/libntp/strdup.c b/libntp/strdup.c index 2e26ba7a51e4..f7565a2fb8f7 100644 --- a/libntp/strdup.c +++ b/libntp/strdup.c @@ -1,8 +1,9 @@ -#include "ntp_malloc.h" +#include <config.h> -#if !HAVE_STRDUP +#include <string.h> +#include "ntp_malloc.h" -#define NULL 0 +#ifndef HAVE_STRDUP char *strdup(const char *s); @@ -11,18 +12,19 @@ strdup( const char *s ) { - char *cp; + size_t octets; + char * cp; + + if (s) { + octets = 1 + strlen(s); + cp = malloc(octets); + if (NULL != cp) + memcpy(cp, s, octets); + else + cp = NULL; - if (s) { - cp = (char *) malloc((unsigned) (strlen(s)+1)); - if (cp) { - (void) strcpy(cp, s); - } - } else { - cp = (char *) NULL; - } - return(cp); + return(cp); } #else -int strdup_bs; +int strdup_c_nonempty_compilation_unit; #endif |