これ実行するとWZが落ちるんだけどなんで?

void debug_printf(const char *fmt, ...)
{
char buf[4096];

va_list args;

va_start(args, fmt);
(void)vsprintf(buf, fmt, args);
va_end(args);

printf("%s", buf);
}