in src/vasprintf.c [623:653]
int vasprintf(char **ptr, const char *format_string, va_list vargs)
{
xprintf_struct s;
int retval;
s.src_string = format_string;
#ifdef va_copy
va_copy (s.vargs, vargs);
#else
# ifdef __va_copy
__va_copy (s.vargs, vargs);
# else
# ifdef WIN32
s.vargs = vargs;
# else
memcpy (&s.vargs, &vargs, sizeof (s.va_args));
# endif /* WIN32 */
# endif /* __va_copy */
#endif /* va_copy */
s.maxlen = (size_t)INT_MAX;
retval = core(&s);
va_end(s.vargs);
if (retval == EOF) {
*ptr = NULL;
return EOF;
}
*ptr = s.buffer_base;
return retval;
}