We don't use gnulib's sanitizations for vfprintf, but vshDebug
was used with %zu, which means that it would fail on mingw.
Thank goodness the compiler indirectly caught this for us :)
virsh.c: In function 'vshDebug':
virsh.c:12105:5: warning: function might be possible candidate for
'ms_printf' format attribute [-Wmissing-format-attribute]
since mingw <stdio.h> hasn't yet added gcc attributes to vfprintf.
* tools/virsh.c (vshDebug): Avoid vfprintf.
(vshPrintExtra): Use lighter-weight fputs.
Reported by Matthias Bolte.
vshDebug(vshControl *ctl, int level, const char *format, ...)
{
va_list ap;
+ char *str;
va_start(ap, format);
vshOutputLogFile(ctl, VSH_ERR_DEBUG, format, ap);
return;
va_start(ap, format);
- vfprintf(stdout, format, ap);
+ if (virVasprintf(&str, format, ap) < 0) {
+ /* Skip debug messages on low memory */
+ va_end(ap);
+ return;
+ }
va_end(ap);
+ fputs(str, stdout);
+ VIR_FREE(str);
}
static void
return;
}
va_end(ap);
- fprintf(stdout, "%s", str);
+ fputs(str, stdout);
VIR_FREE(str);
}