If there was an error when constructing the buffer, NULL is
returned. The buffer is never freed though.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_command.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index e57a3278e..d553df57f 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3805,13 +3805,13 @@ qemuBuildHostNetStr(virDomainNetDefPtr net,
virDomainNetType netType = virDomainNetGetActualType(net);
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
size_t i;
+ char *ret = NULL;
if (net->script && netType != VIR_DOMAIN_NET_TYPE_ETHERNET) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("scripts are not supported on interfaces of type
%s"),
virDomainNetTypeToString(netType));
- virObjectUnref(cfg);
- return NULL;
+ goto cleanup;
}
switch (netType) {
@@ -3919,13 +3919,16 @@ qemuBuildHostNetStr(virDomainNetDefPtr net,
virBufferAsprintf(&buf, "sndbuf=%lu,", net->tune.sndbuf);
}
- virObjectUnref(cfg);
virBufferTrim(&buf, ",", -1);
if (virBufferCheckError(&buf) < 0)
- return NULL;
+ goto cleanup;
- return virBufferContentAndReset(&buf);
+ ret = virBufferContentAndReset(&buf);
+ cleanup:
+ virBufferFreeAndReset(&buf);
+ virObjectUnref(cfg);
+ return ret;
}
--
2.13.5