]> xenbits.xensource.com Git - libvirt.git/commitdiff
virsh: avoid compiler warning on mingw
authorEric Blake <eblake@redhat.com>
Thu, 28 Apr 2011 21:09:08 +0000 (15:09 -0600)
committerEric Blake <eblake@redhat.com>
Thu, 28 Apr 2011 21:09:08 +0000 (15:09 -0600)
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.

tools/virsh.c

index 27140f3729213bf645a6efd98f3de418f7bce38c..0212b99739aa04589fa16ebc785c8028cb67717d 100644 (file)
@@ -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);
 }