--- misc/liblangtag-0.4.0/liblangtag/lt-utils.c 2012-12-01 10:46:26.000000000 +0100 +++ misc/build/liblangtag-0.4.0/liblangtag/lt-utils.c 2012-12-01 13:17:41.421568551 +0100 @@ -18,6 +18,7 @@ #include #include #include +#include #include "lt-messages.h" #include "lt-utils.h" @@ -121,7 +121,7 @@ char * lt_strdup_vprintf(const char *format, va_list args) { - char *retval, c; + char *retval, tmpbuf[ 16384 ]; va_list ap; int size; @@ -133,7 +133,9 @@ lt_strdup_vprintf(const char *format, va_copy(ap, args); #endif - size = vsnprintf(&c, 1, format, ap) + 1; + size = vsnprintf(tmpbuf, sizeof(tmpbuf), format, ap) + 1; + if( size == 0 ) // -1 + 1 + abort(); va_end(ap);