Please note that this patch fixes real bugs, namely wrong format strings. As far as I could see those bugs are only in code branches which handle rare error conditions, so maybe they only have a low priority. Nevertheless they can be fixed in QEMU 1.7.
Do we need a pull request, or can it be applied directly? Stefan Am 17.11.2013 19:19, schrieb Stefan Weil: > gcc 4.8.2 reports this warning when extra warnings are enabled (-Wextra): > > CC qga/commands.o > qga/commands.c: In function ‘slog’: > qga/commands.c:28:5: error: > function might be possible candidate for ‘gnu_printf’ format attribute > [-Werror=suggest-attribute=format] > g_logv("syslog", G_LOG_LEVEL_INFO, fmt, ap); > ^ > > gcc 4.8.2 reports this warning when slog is declared with the > gnu_printf format attribute: > > qga/commands-posix.c: In function ‘qmp_guest_file_open’: > qga/commands-posix.c:404:5: warning: > format ‘%d’ expects argument of type ‘int’, but argument 2 has type > ‘int64_t’ [-Wformat=] > slog("guest-file-open, handle: %d", handle); > ^ > > On 32 bit hosts there are three more warnings which are also fixed here. > > Signed-off-by: Stefan Weil <s...@weilnetz.de> > --- > > v2: Fix three more wrong format strings for 32 bit hosts. > > qga/commands-posix.c | 8 ++++---- > qga/guest-agent-core.h | 2 +- > 2 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/qga/commands-posix.c b/qga/commands-posix.c > index 10682f5..8100bee 100644 > --- a/qga/commands-posix.c > +++ b/qga/commands-posix.c > @@ -401,7 +401,7 @@ int64_t qmp_guest_file_open(const char *path, bool > has_mode, const char *mode, E > return -1; > } > > - slog("guest-file-open, handle: %d", handle); > + slog("guest-file-open, handle: %" PRId64, handle); > return handle; > } > > @@ -410,7 +410,7 @@ void qmp_guest_file_close(int64_t handle, Error **err) > GuestFileHandle *gfh = guest_file_handle_find(handle, err); > int ret; > > - slog("guest-file-close called, handle: %ld", handle); > + slog("guest-file-close called, handle: %" PRId64, handle); > if (!gfh) { > return; > } > @@ -451,7 +451,7 @@ struct GuestFileRead *qmp_guest_file_read(int64_t handle, > bool has_count, > read_count = fread(buf, 1, count, fh); > if (ferror(fh)) { > error_setg_errno(err, errno, "failed to read file"); > - slog("guest-file-read failed, handle: %ld", handle); > + slog("guest-file-read failed, handle: %" PRId64, handle); > } else { > buf[read_count] = 0; > read_data = g_malloc0(sizeof(GuestFileRead)); > @@ -496,7 +496,7 @@ GuestFileWrite *qmp_guest_file_write(int64_t handle, > const char *buf_b64, > write_count = fwrite(buf, 1, count, fh); > if (ferror(fh)) { > error_setg_errno(err, errno, "failed to write to file"); > - slog("guest-file-write failed, handle: %ld", handle); > + slog("guest-file-write failed, handle: %" PRId64, handle); > } else { > write_data = g_malloc0(sizeof(GuestFileWrite)); > write_data->count = write_count; > diff --git a/qga/guest-agent-core.h b/qga/guest-agent-core.h > index 624a559..e422208 100644 > --- a/qga/guest-agent-core.h > +++ b/qga/guest-agent-core.h > @@ -29,7 +29,7 @@ GACommandState *ga_command_state_new(void); > bool ga_logging_enabled(GAState *s); > void ga_disable_logging(GAState *s); > void ga_enable_logging(GAState *s); > -void slog(const gchar *fmt, ...); > +void GCC_FMT_ATTR(1, 2) slog(const gchar *fmt, ...); > void ga_set_response_delimited(GAState *s); > bool ga_is_frozen(GAState *s); > void ga_set_frozen(GAState *s);