diff --git a/libs/libc/stdio/lib_libvsprintf.c b/libs/libc/stdio/lib_libvsprintf.c index 5dc712182c8..6e0fef0fd34 100644 --- a/libs/libc/stdio/lib_libvsprintf.c +++ b/libs/libc/stdio/lib_libvsprintf.c @@ -464,7 +464,15 @@ static int vsprintf_internal(FAR struct lib_outstream_s *stream, if (fmt_char(fmt) == 'V') { FAR struct va_format *vaf = va_arg(ap, void *); +#ifdef va_copy + va_list copy; + + va_copy(copy, *vaf->va); + vsprintf_internal(stream, NULL, 0, vaf->fmt, copy); + va_end(copy); +#else vsprintf_internal(stream, NULL, 0, vaf->fmt, *vaf->va); +#endif continue; } else