From 247983e9820fd264cb5a59c14cc12846c028bd08 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 29 Aug 2018 18:41:15 +0200 Subject: misc: Add strndup implementation if not provides by the OS Signed-off-by: Andreas Schneider --- src/misc.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/misc.c') diff --git a/src/misc.c b/src/misc.c index 5f606044..89934900 100644 --- a/src/misc.c +++ b/src/misc.c @@ -1085,4 +1085,25 @@ void explicit_bzero(void *s, size_t n) } #endif /* !HAVE_EXPLICIT_BZERO */ +#if !defined(HAVE_STRNDUP) +char *strndup(const char *s, size_t n) +{ + char *x = NULL; + + if (n + 1 < n) { + return NULL; + } + + x = malloc(n + 1); + if (x == NULL) { + return NULL; + } + + memcpy(x, s, n); + x[n] = '\0'; + + return x; +} +#endif /* ! HAVE_STRNDUP */ + /** @} */ -- cgit v1.2.1