[libvirt] [PATCH] virsh: avoid compiler warning on mingw
Daniel Veillard
veillard at redhat.com
Fri Apr 29 01:02:55 UTC 2011
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 at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list