* [Qemu-devel] [PATCH 0/2] Trivial portability fix: missing va_end()
@ 2011-10-28 8:52 Markus Armbruster
2011-10-28 8:52 ` [Qemu-devel] [PATCH 1/2] sysbus: Supply " Markus Armbruster
2011-10-28 8:52 ` [Qemu-devel] [PATCH 2/2] hw/9pfs: " Markus Armbruster
0 siblings, 2 replies; 5+ messages in thread
From: Markus Armbruster @ 2011-10-28 8:52 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-trivial, jvrao
Markus Armbruster (2):
sysbus: Supply missing va_end()
hw/9pfs: Supply missing va_end()
hw/9pfs/virtio-9p.c | 4 ++++
hw/sysbus.c | 2 ++
2 files changed, 6 insertions(+), 0 deletions(-)
--
1.7.6.4
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] [PATCH 1/2] sysbus: Supply missing va_end()
2011-10-28 8:52 [Qemu-devel] [PATCH 0/2] Trivial portability fix: missing va_end() Markus Armbruster
@ 2011-10-28 8:52 ` Markus Armbruster
2011-10-31 11:52 ` Stefan Hajnoczi
2011-10-28 8:52 ` [Qemu-devel] [PATCH 2/2] hw/9pfs: " Markus Armbruster
1 sibling, 1 reply; 5+ messages in thread
From: Markus Armbruster @ 2011-10-28 8:52 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-trivial, jvrao
C99 7.15.1: Each invocation of the va_start and va_copy macros shall
be matched by a corresponding invocation of the va_end macro in the
same function.
Spotted by Coverity. Harmless on the (common) systems where va_end()
does nothing.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
hw/sysbus.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/hw/sysbus.c b/hw/sysbus.c
index 4fab5a4..fd2fc6a 100644
--- a/hw/sysbus.c
+++ b/hw/sysbus.c
@@ -198,6 +198,7 @@ DeviceState *sysbus_create_varargs(const char *name,
sysbus_connect_irq(s, n, irq);
n++;
}
+ va_end(va);
return dev;
}
@@ -229,6 +230,7 @@ DeviceState *sysbus_try_create_varargs(const char *name,
sysbus_connect_irq(s, n, irq);
n++;
}
+ va_end(va);
return dev;
}
--
1.7.6.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Qemu-devel] [PATCH 2/2] hw/9pfs: Supply missing va_end()
2011-10-28 8:52 [Qemu-devel] [PATCH 0/2] Trivial portability fix: missing va_end() Markus Armbruster
2011-10-28 8:52 ` [Qemu-devel] [PATCH 1/2] sysbus: Supply " Markus Armbruster
@ 2011-10-28 8:52 ` Markus Armbruster
2011-10-31 11:51 ` [Qemu-devel] [Qemu-trivial] " Stefan Hajnoczi
1 sibling, 1 reply; 5+ messages in thread
From: Markus Armbruster @ 2011-10-28 8:52 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-trivial, jvrao
C99 7.15.1: Each invocation of the va_start and va_copy macros shall
be matched by a corresponding invocation of the va_end macro in the
same function.
Spotted by Coverity. Harmless on the (common) systems where va_end()
does nothing.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
hw/9pfs/virtio-9p.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/hw/9pfs/virtio-9p.c b/hw/9pfs/virtio-9p.c
index aab3beb..1e22696 100644
--- a/hw/9pfs/virtio-9p.c
+++ b/hw/9pfs/virtio-9p.c
@@ -231,6 +231,7 @@ v9fs_string_alloc_printf(char **strp, const char *fmt, va_list ap)
arg_ulong = va_arg(ap2, unsigned long);
len += number_to_string((void *)&arg_ulong, 'U');
} else {
+ va_end(ap2);
return -1;
}
break;
@@ -244,11 +245,14 @@ v9fs_string_alloc_printf(char **strp, const char *fmt, va_list ap)
default:
fprintf(stderr,
"v9fs_string_alloc_printf:Incorrect format %c", *iter);
+ va_end(ap2);
return -1;
}
iter++;
}
+ va_end(ap2);
+
alloc_print:
*strp = g_malloc((len + 1) * sizeof(**strp));
--
1.7.6.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [Qemu-trivial] [PATCH 2/2] hw/9pfs: Supply missing va_end()
2011-10-28 8:52 ` [Qemu-devel] [PATCH 2/2] hw/9pfs: " Markus Armbruster
@ 2011-10-31 11:51 ` Stefan Hajnoczi
0 siblings, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2011-10-31 11:51 UTC (permalink / raw)
To: Markus Armbruster; +Cc: qemu-trivial, jvrao, qemu-devel
On Fri, Oct 28, 2011 at 9:52 AM, Markus Armbruster <armbru@redhat.com> wrote:
> C99 7.15.1: Each invocation of the va_start and va_copy macros shall
> be matched by a corresponding invocation of the va_end macro in the
> same function.
>
> Spotted by Coverity. Harmless on the (common) systems where va_end()
> does nothing.
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
> hw/9pfs/virtio-9p.c | 4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)
Thanks for this patch. I looked at the surrounding code and it turns
out this entire function duplicates g_vasprintf() from glib.
I sent a patch to use g_vasprintf() and it therefore eliminates the
varargs issue.
Stefan
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] sysbus: Supply missing va_end()
2011-10-28 8:52 ` [Qemu-devel] [PATCH 1/2] sysbus: Supply " Markus Armbruster
@ 2011-10-31 11:52 ` Stefan Hajnoczi
0 siblings, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2011-10-31 11:52 UTC (permalink / raw)
To: Markus Armbruster; +Cc: qemu-trivial, jvrao, qemu-devel
On Fri, Oct 28, 2011 at 10:52:25AM +0200, Markus Armbruster wrote:
> C99 7.15.1: Each invocation of the va_start and va_copy macros shall
> be matched by a corresponding invocation of the va_end macro in the
> same function.
>
> Spotted by Coverity. Harmless on the (common) systems where va_end()
> does nothing.
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
> hw/sysbus.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
Thanks, applied to the trivial patches -next tree:
http://repo.or.cz/w/qemu/stefanha.git/shortlog/refs/heads/trivial-patches-next
Stefan
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-10-31 11:52 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-28 8:52 [Qemu-devel] [PATCH 0/2] Trivial portability fix: missing va_end() Markus Armbruster
2011-10-28 8:52 ` [Qemu-devel] [PATCH 1/2] sysbus: Supply " Markus Armbruster
2011-10-31 11:52 ` Stefan Hajnoczi
2011-10-28 8:52 ` [Qemu-devel] [PATCH 2/2] hw/9pfs: " Markus Armbruster
2011-10-31 11:51 ` [Qemu-devel] [Qemu-trivial] " Stefan Hajnoczi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).