[libvirt] [PATCH] virtlogd: cast maxlen to size_t

Otherwise we fail on 32bit with: CC logging/virtlogd-log_daemon_dispatch.o logging/log_daemon_dispatch.c: In function 'virLogManagerProtocolDispatchDomainReadLogFile': logging/log_daemon_dispatch.c:120:9: error: format '%zu' expects argument of type 'size_t', but argument 7 has type 'uint64_t' [-Werror=format] --- src/logging/log_daemon_dispatch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/logging/log_daemon_dispatch.c b/src/logging/log_daemon_dispatch.c index 269255a..70b5f1d 100644 --- a/src/logging/log_daemon_dispatch.c +++ b/src/logging/log_daemon_dispatch.c @@ -119,7 +119,7 @@ virLogManagerProtocolDispatchDomainReadLogFile(virNetServerPtr server ATTRIBUTE_ if (args->maxlen > VIR_LOG_MANAGER_PROTOCOL_STRING_MAX) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Requested data len %zu is larger than maximum %d"), - args->maxlen, VIR_LOG_MANAGER_PROTOCOL_STRING_MAX); + (size_t)args->maxlen, VIR_LOG_MANAGER_PROTOCOL_STRING_MAX); goto cleanup; } -- 2.6.2

On Thu, Nov 26, 2015 at 06:12:38PM +0100, Guido Günther wrote:
Otherwise we fail on 32bit with:
CC logging/virtlogd-log_daemon_dispatch.o logging/log_daemon_dispatch.c: In function 'virLogManagerProtocolDispatchDomainReadLogFile': logging/log_daemon_dispatch.c:120:9: error: format '%zu' expects argument of type 'size_t', but argument 7 has type 'uint64_t' [-Werror=format] --- src/logging/log_daemon_dispatch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/logging/log_daemon_dispatch.c b/src/logging/log_daemon_dispatch.c index 269255a..70b5f1d 100644 --- a/src/logging/log_daemon_dispatch.c +++ b/src/logging/log_daemon_dispatch.c @@ -119,7 +119,7 @@ virLogManagerProtocolDispatchDomainReadLogFile(virNetServerPtr server ATTRIBUTE_ if (args->maxlen > VIR_LOG_MANAGER_PROTOCOL_STRING_MAX) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Requested data len %zu is larger than maximum %d"), - args->maxlen, VIR_LOG_MANAGER_PROTOCOL_STRING_MAX); + (size_t)args->maxlen, VIR_LOG_MANAGER_PROTOCOL_STRING_MAX);
Casting will truncate - since maxlen is a uint64, we should change the format specifier to %llu instead of casting. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

On Thu, Nov 26, 2015 at 05:19:30PM +0000, Daniel P. Berrange wrote:
On Thu, Nov 26, 2015 at 06:12:38PM +0100, Guido Günther wrote:
Otherwise we fail on 32bit with:
CC logging/virtlogd-log_daemon_dispatch.o logging/log_daemon_dispatch.c: In function 'virLogManagerProtocolDispatchDomainReadLogFile': logging/log_daemon_dispatch.c:120:9: error: format '%zu' expects argument of type 'size_t', but argument 7 has type 'uint64_t' [-Werror=format] --- src/logging/log_daemon_dispatch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/logging/log_daemon_dispatch.c b/src/logging/log_daemon_dispatch.c index 269255a..70b5f1d 100644 --- a/src/logging/log_daemon_dispatch.c +++ b/src/logging/log_daemon_dispatch.c @@ -119,7 +119,7 @@ virLogManagerProtocolDispatchDomainReadLogFile(virNetServerPtr server ATTRIBUTE_ if (args->maxlen > VIR_LOG_MANAGER_PROTOCOL_STRING_MAX) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Requested data len %zu is larger than maximum %d"), - args->maxlen, VIR_LOG_MANAGER_PROTOCOL_STRING_MAX); + (size_t)args->maxlen, VIR_LOG_MANAGER_PROTOCOL_STRING_MAX);
Casting will truncate - since maxlen is a uint64, we should change the format specifier to %llu instead of casting.
That would then in turn break 64bit so I went for PRIu64. Cheers, -- Guido
participants (2)
-
Daniel P. Berrange
-
Guido Günther