On 07/12/2018 08:12 AM, Markus Armbruster wrote: > Signed-off-by: Markus Armbruster <arm...@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org> > --- > tests/libqtest.c | 18 +++++++----------- > 1 file changed, 7 insertions(+), 11 deletions(-) > > diff --git a/tests/libqtest.c b/tests/libqtest.c > index c2c08a890c..3bfb062fcb 100644 > --- a/tests/libqtest.c > +++ b/tests/libqtest.c > @@ -488,24 +488,20 @@ QDict *qtest_qmp_receive(QTestState *s) > */ > void qmp_fd_vsend(int fd, const char *fmt, va_list ap) > { > - va_list ap_copy; > QObject *qobj; > > - /* qobject_from_jsonv() silently eats leading 0xff as invalid > - * JSON, but we want to test sending them over the wire to force > - * resyncs */ > + /* > + * qobject_from_vjsonf_nofail() chokes on leading 0xff as invalid > + * JSON, but tests/test-qga.c needs to send that to test QGA > + * synchronization > + */ > if (*fmt == '\377') { > socket_send(fd, fmt, 1); > fmt++; > } > > - /* Going through qobject ensures we escape strings properly. > - * This seemingly unnecessary copy is required in case va_list > - * is an array type. > - */ > - va_copy(ap_copy, ap); > - qobj = qobject_from_jsonv(fmt, &ap_copy, &error_abort); > - va_end(ap_copy); > + /* Going through qobject ensures we escape strings properly */ > + qobj = qobject_from_vjsonf_nofail(fmt, ap); > > /* No need to send anything for an empty QObject. */ > if (qobj) { >