From 0df63036c888220ea2d5c122f3c19861b0959167 Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Wed, 14 Sep 2011 01:39:02 +0200 Subject: Refined asprintf/vasprintf detection and inclusion --- src/asprintf.h | 20 +++++++++++++++----- src/debug.c | 2 -- src/lockdown.c | 2 -- 3 files changed, 15 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/asprintf.h b/src/asprintf.h index 6f1250d..3b0072e 100644 --- a/src/asprintf.h +++ b/src/asprintf.h @@ -1,15 +1,24 @@ #ifndef ASPRINTF_H #define ASPRINTF_H -#ifndef vasprintf + +#ifdef HAVE_CONFIG_H +#include +#endif + +#ifndef HAVE_VASPRINTF static inline int vasprintf(char **PTR, const char *TEMPLATE, va_list AP) { int res; - *PTR = (char*)malloc(512); - res = vsnprintf(*PTR, 512, TEMPLATE, AP); + res = vsnprintf(NULL, 32768, TEMPLATE, AP); + if (res > 0) { + *PTR = (char*)malloc(res+1); + res = vsnprintf(*PTR, res, TEMPLATE, AP); + } return res; } #endif -#ifndef asprintf + +#ifndef HAVE_ASPRINTF static inline int asprintf(char **PTR, const char *TEMPLATE, ...) { int res; @@ -20,4 +29,5 @@ static inline int asprintf(char **PTR, const char *TEMPLATE, ...) return res; } #endif -#endif + +#endif /* ASPRINTF_H */ diff --git a/src/debug.c b/src/debug.c index 49ec7c7..b1c528d 100644 --- a/src/debug.c +++ b/src/debug.c @@ -35,10 +35,8 @@ #include "libimobiledevice/libimobiledevice.h" #ifndef STRIP_DEBUG_CODE -#ifndef HAVE_ASPRINTF #include "asprintf.h" #endif -#endif int debug_level = 0; diff --git a/src/lockdown.c b/src/lockdown.c index e3d557c..0f1e1b2 100644 --- a/src/lockdown.c +++ b/src/lockdown.c @@ -35,9 +35,7 @@ #include "idevice.h" #include "debug.h" #include "userpref.h" -#ifndef HAVE_ASPRINTF #include "asprintf.h" -#endif #define RESULT_SUCCESS 0 #define RESULT_FAILURE 1 -- cgit v1.1-32-gdbae