Il 21/11/2013 13:17, Michael S. Tsirkin ha scritto: > g_string_vprintf was only introduced in 2.24 so switch to vsnprintf > instead. A bit uglier but name size is fixed at 4 bytes here so it's > easy. > > Reported-by: Richard Henderson <r...@redhat.com> > Signed-off-by: Michael S. Tsirkin <m...@redhat.com> > --- > hw/i386/acpi-build.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c > index 486e705..59a17df 100644 > --- a/hw/i386/acpi-build.c > +++ b/hw/i386/acpi-build.c > @@ -287,16 +287,17 @@ static inline void build_append_array(GArray *array, > GArray *val) > > static void build_append_nameseg(GArray *array, const char *format, ...) > { > - GString *s = g_string_new(""); > + /* It would be nicer to use g_string_vprintf but it's only there in 2.22 > */ > + char s[] = "XXXX"; > + int len; > va_list args; > > va_start(args, format); > - g_string_vprintf(s, format, args); > + len = vsnprintf(s, sizeof s, format, args); > va_end(args); > > - assert(s->len == 4); > - g_array_append_vals(array, s->str, s->len); > - g_string_free(s, true); > + assert(len == 4); > + g_array_append_vals(array, s, len); > } > > /* 5.4 Definition Block Encoding */ >
Reviewed-by: Paolo Bonzini <pbonz...@redhat.com>