On 07/12/2018 08:12 AM, Markus Armbruster wrote:
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@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) {
>