From: Peter Krempa Date: Mon, 6 Mar 2023 08:46:40 +0000 (+0100) Subject: qemuBuildChannelGuestfwdNetdevProps: Don't use virJSONValueObjectAppendStringPrintf X-Git-Tag: v9.2.0-rc1~203 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=609353275b82eb2c253ff29340e6c675faa16188;p=thirdparty%2Flibvirt.git qemuBuildChannelGuestfwdNetdevProps: Don't use virJSONValueObjectAppendStringPrintf Use virJSONValueObjectAdd and format the string directly via g_strdup_printf. In the end virJSONValueObjectAppendStringPrintf will be removed. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 3dcee6c4e4..570b57341b 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -10515,22 +10515,24 @@ qemuBuildParallelChrDeviceProps(virDomainChrDef *chr) virJSONValue * qemuBuildChannelGuestfwdNetdevProps(virDomainChrDef *chr) { + g_autofree char *guestfwdstr = NULL; + g_autoptr(virJSONValue) guestfwdstrobj = NULL; g_autoptr(virJSONValue) guestfwdarr = virJSONValueNewArray(); - g_autoptr(virJSONValue) guestfwdstrobj = virJSONValueNewObject(); g_autofree char *addr = NULL; virJSONValue *ret = NULL; if (!(addr = virSocketAddrFormat(chr->target.addr))) return NULL; + guestfwdstr = g_strdup_printf("tcp:%s:%i-chardev:char%s", + addr, + virSocketAddrGetPort(chr->target.addr), + chr->info.alias); + /* this may seem weird, but qemu indeed decided that 'guestfwd' parameter * is an array of objects which have just one member named 'str' which * contains the description */ - if (virJSONValueObjectAppendStringPrintf(guestfwdstrobj, "str", - "tcp:%s:%i-chardev:char%s", - addr, - virSocketAddrGetPort(chr->target.addr), - chr->info.alias) < 0) + if (virJSONValueObjectAdd(&guestfwdstrobj, "s:str", guestfwdstr, NULL) < 0) return NULL; if (virJSONValueArrayAppend(guestfwdarr, &guestfwdstrobj) < 0)