diff options
Diffstat (limited to 'openbsd-compat/bsd-asprintf.c')
-rw-r--r-- | openbsd-compat/bsd-asprintf.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/openbsd-compat/bsd-asprintf.c b/openbsd-compat/bsd-asprintf.c index 3368195d..10927727 100644 --- a/openbsd-compat/bsd-asprintf.c +++ b/openbsd-compat/bsd-asprintf.c @@ -19,24 +19,21 @@ #include "includes.h" +/* + * Don't let systems with broken printf(3) avoid our replacements + * via asprintf(3)/vasprintf(3) calling libc internally. + */ +#if defined(BROKEN_SNPRINTF) +# undef HAVE_VASPRINTF +# undef HAVE_ASPRINTF +#endif + #ifndef HAVE_VASPRINTF #include <errno.h> #include <stdarg.h> #include <stdlib.h> -#ifndef VA_COPY -# ifdef HAVE_VA_COPY -# define VA_COPY(dest, src) va_copy(dest, src) -# else -# ifdef HAVE___VA_COPY -# define VA_COPY(dest, src) __va_copy(dest, src) -# else -# define VA_COPY(dest, src) (dest) = (src) -# endif -# endif -#endif - #define INIT_SZ 128 int @@ -90,7 +87,7 @@ int asprintf(char **str, const char *fmt, ...) { va_list ap; int ret; - + *str = NULL; va_start(ap, fmt); ret = vasprintf(str, fmt, ap); |