From 3c8b4467a1ca229e72fb5223787ed400a19c65c0 Mon Sep 17 00:00:00 2001 From: Joshua Watt Date: Fri, 25 Oct 2019 21:03:23 -0500 Subject: [PATCH] scanner: Add configure check for strndup Some platforms may not have strndup() (e.g. MinGW), so provide a equivalent implementation if it's not found. Upstream-Status: Accepted [4a1f348c20157db7bd7c759fdeb23fbe8729c571] Signed-off-by: Joshua Watt --- configure.ac | 2 +- src/scanner.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 8d56f2b..1c99e21 100644 --- a/configure.ac +++ b/configure.ac @@ -63,7 +63,7 @@ fi AC_SUBST(GCC_CFLAGS) AC_CHECK_HEADERS([sys/prctl.h]) -AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate prctl]) +AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate prctl strndup]) AC_ARG_ENABLE([libraries], [AC_HELP_STRING([--disable-libraries], diff --git a/src/scanner.c b/src/scanner.c index a94be5d..27004bc 100644 --- a/src/scanner.c +++ b/src/scanner.c @@ -916,6 +916,17 @@ verify_arguments(struct parse_context *ctx, } +#ifndef HAVE_STRNDUP +char * +strndup(const char *s, size_t size) +{ + char *r = malloc(size + 1); + strncpy(r, s, size); + r[size] = '\0'; + return r; +} +#endif + static void end_element(void *data, const XML_Char *name) {