
[adding bug-gnulib] On 09/04/2012 08:49 AM, Jasper Lievisse Adriaanse wrote:
From b53dc971cc50b5ac397e4568449d25041477c8d6 Mon Sep 17 00:00:00 2001 From: Jasper Lievisse Adriaanse <jasper@humppa.nl> Date: Tue, 4 Sep 2012 16:47:26 +0200 Subject: [PATCH] Pass a correct pointer type to localtime_r(3).
Fixes a warning: warning: passing argument 1 of 'localtime_r' from incompatible pointer type --- tools/virsh-domain.c | 3 ++- tools/virsh.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-)
NACK from the libvirt point of view. tv_sec is required by POSIX to be of type time_t; so this is a bug in the OpenBSD header, and gnulib should be working around this bug.
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index f0ec742..535779c 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -3711,6 +3711,7 @@ vshGenFileName(vshControl *ctl, virDomainPtr dom, const char *mime) struct tm time_info; const char *ext = NULL; char *ret = NULL; + time_t sec = (time_t) cur_time.tv_sec;
if (!dom) { vshError(ctl, "%s", _("Invalid domain supplied")); @@ -3724,7 +3725,7 @@ vshGenFileName(vshControl *ctl, virDomainPtr dom, const char *mime) /* add mime type here */
gettimeofday(&cur_time, NULL); - localtime_r(&cur_time.tv_sec, &time_info); + localtime_r(&sec, &time_info); strftime(timestr, sizeof(timestr), "%Y-%m-%d-%H:%M:%S", &time_info);
+++ b/tools/virsh.c @@ -2189,6 +2189,7 @@ vshOutputLogFile(vshControl *ctl, int log_level, const char *msg_format, const char *lvl = ""; struct timeval stTimeval; struct tm *stTm; + time_t sec = stTimeval.tv_sec;
if (ctl->log_fd == -1) return; @@ -2199,7 +2200,7 @@ vshOutputLogFile(vshControl *ctl, int log_level, const char *msg_format, * [YYYY.MM.DD HH:MM:SS SIGNATURE PID] LOG_LEVEL message */ gettimeofday(&stTimeval, NULL); - stTm = localtime(&stTimeval.tv_sec); + stTm = localtime(&sec);
Even grosser - why is virsh using localtime() instead of localtime_r()? -- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org