From c63ec6e34705547108ee41e9ff74d26d7c55afa3 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Thu, 28 Apr 2011 15:09:08 -0600 Subject: [PATCH] virsh: avoid compiler warning on mingw 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 hasn't yet added gcc attributes to vfprintf. * tools/virsh.c (vshDebug): Avoid vfprintf. (vshPrintExtra): Use lighter-weight fputs. Reported by Matthias Bolte. --- tools/virsh.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/virsh.c b/tools/virsh.c index 27140f3729..0212b99739 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -12096,6 +12096,7 @@ static void vshDebug(vshControl *ctl, int level, const char *format, ...) { va_list ap; + char *str; va_start(ap, format); vshOutputLogFile(ctl, VSH_ERR_DEBUG, format, ap); @@ -12105,8 +12106,14 @@ vshDebug(vshControl *ctl, int level, const char *format, ...) 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 @@ -12125,7 +12132,7 @@ vshPrintExtra(vshControl *ctl, const char *format, ...) return; } va_end(ap); - fprintf(stdout, "%s", str); + fputs(str, stdout); VIR_FREE(str); } -- GitLab