bogus on my machine. ast_safe_string_alloc() was broken. It called
vsnprintf() on a va_args list twice without re-initializing it. After the first
usage, va_end() and va_start() must be called again.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@67360
65c4cc65-6c06-0410-ace0-
fbb531ad65f3
/*! \brief printf the string into a correctly sized mallocd buffer, and return the buffer */
char *ast_safe_string_alloc(const char *fmt, ...)
{
- char *b2,buf[1];
+ char *b2, buf[1];
int len;
-
va_list args;
+
va_start(args, fmt);
len = vsnprintf(buf, 1, fmt, args);
- b2 = ast_malloc(len+1);
- vsnprintf(b2, len+1, fmt, args);
va_end(args);
+
+ b2 = ast_malloc(len + 1);
+
+ va_start(args, fmt);
+ vsnprintf(b2, len + 1, fmt, args);
+ va_end(args);
+
return b2;
}