Use virJSONValueObjectAdd and format the string directly via
g_strdup_printf. In the end virJSONValueObjectAppendStringPrintf will be
removed.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_command.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 784003fbf5..420fe4ed0c 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -10475,22 +10475,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)
--
2.39.2