On Thu, Apr 28, 2011 at 03:11:23PM -0600, Eric Blake wrote: > 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 | 11 +++++++++-- > 1 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/tools/virsh.c b/tools/virsh.c > index 27140f3..0212b99 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); > } ACK, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list