In files: netdev_bandwidth_conf: in virNetDevBandwidthParse(),
bridge_driver: in networkPortSetParameters(), qemu_driver: in
qemuDomainSetInterfaceParameters(), test_driver: in
testDomainSetInterfaceParameters(), virnetdevbandwidthtest: in
testVirNetDevBandwidthSet()
Signed-off-by: Kristina Hanicova <khanicov(a)redhat.com>
---
src/conf/netdev_bandwidth_conf.c | 9 +++------
src/network/bridge_driver.c | 6 ++----
src/qemu/qemu_driver.c | 11 ++++-------
src/test/test_driver.c | 3 +--
src/util/virnetdevbandwidth.h | 2 ++
tests/virnetdevbandwidthtest.c | 3 +--
6 files changed, 13 insertions(+), 21 deletions(-)
diff --git a/src/conf/netdev_bandwidth_conf.c b/src/conf/netdev_bandwidth_conf.c
index 1ff3785677..81590efe6d 100644
--- a/src/conf/netdev_bandwidth_conf.c
+++ b/src/conf/netdev_bandwidth_conf.c
@@ -111,7 +111,7 @@ virNetDevBandwidthParse(virNetDevBandwidthPtr *bandwidth,
bool allowFloor)
{
int ret = -1;
- virNetDevBandwidthPtr def = NULL;
+ g_autoptr(virNetDevBandwidth) def = NULL;
xmlNodePtr cur;
xmlNodePtr in = NULL, out = NULL;
g_autofree char *class_id_prop = NULL;
@@ -197,15 +197,12 @@ virNetDevBandwidthParse(virNetDevBandwidthPtr *bandwidth,
}
}
- if (!def->in && !def->out)
- VIR_FREE(def);
+ if (def->in || def->out)
+ *bandwidth = g_steal_pointer(&def);
- *bandwidth = def;
- def = NULL;
ret = 0;
cleanup:
- virNetDevBandwidthFree(def);
return ret;
}
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 519a473995..b29c37ef4c 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -5397,7 +5397,7 @@ networkPortSetParameters(virNetworkPortPtr port,
virNetworkObjPtr obj;
virNetworkDefPtr def;
virNetworkPortDefPtr portdef;
- virNetDevBandwidthPtr bandwidth = NULL;
+ g_autoptr(virNetDevBandwidth) bandwidth = NULL;
g_autofree char *dir = NULL;
int ret = -1;
size_t i;
@@ -5466,15 +5466,13 @@ networkPortSetParameters(virNetworkPortPtr port,
goto cleanup;
virNetDevBandwidthFree(portdef->bandwidth);
- portdef->bandwidth = bandwidth;
- bandwidth = NULL;
+ portdef->bandwidth = g_steal_pointer(&bandwidth);
if (virNetworkPortDefSaveStatus(portdef, dir) < 0)
goto cleanup;
ret = 0;
cleanup:
- virNetDevBandwidthFree(bandwidth);
virNetworkObjEndAPI(&obj);
return ret;
}
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index b9bbdf8d48..2a191232a6 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -10207,7 +10207,8 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
virDomainDefPtr persistentDef;
int ret = -1;
virDomainNetDefPtr net = NULL, persistentNet = NULL;
- virNetDevBandwidthPtr bandwidth = NULL, newBandwidth = NULL;
+ g_autoptr(virNetDevBandwidth) bandwidth = NULL;
+ g_autoptr(virNetDevBandwidth) newBandwidth = NULL;
g_autoptr(virQEMUDriverConfig) cfg = NULL;
bool inboundSpecified = false, outboundSpecified = false;
int actualType;
@@ -10375,8 +10376,7 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
virNetDevBandwidthFree(net->bandwidth);
if (newBandwidth->in || newBandwidth->out) {
- net->bandwidth = newBandwidth;
- newBandwidth = NULL;
+ net->bandwidth = g_steal_pointer(&newBandwidth);
} else {
net->bandwidth = NULL;
}
@@ -10394,8 +10394,7 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
if (persistentNet) {
if (!persistentNet->bandwidth) {
- persistentNet->bandwidth = bandwidth;
- bandwidth = NULL;
+ persistentNet->bandwidth = g_steal_pointer(&bandwidth);
} else {
if (bandwidth->in) {
VIR_FREE(persistentNet->bandwidth->in);
@@ -10423,8 +10422,6 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
qemuDomainObjEndJob(driver, vm);
cleanup:
- virNetDevBandwidthFree(bandwidth);
- virNetDevBandwidthFree(newBandwidth);
virDomainObjEndAPI(&vm);
return ret;
}
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index bca1297d1d..0ac03de127 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -3446,7 +3446,7 @@ testDomainSetInterfaceParameters(virDomainPtr dom,
virDomainObjPtr vm = NULL;
virDomainDefPtr def;
virDomainNetDefPtr net = NULL;
- virNetDevBandwidthPtr bandwidth = NULL;
+ g_autoptr(virNetDevBandwidth) bandwidth = NULL;
bool inboundSpecified = false;
bool outboundSpecified = false;
size_t i;
@@ -3536,7 +3536,6 @@ testDomainSetInterfaceParameters(virDomainPtr dom,
ret = 0;
cleanup:
- virNetDevBandwidthFree(bandwidth);
virDomainObjEndAPI(&vm);
return ret;
}
diff --git a/src/util/virnetdevbandwidth.h b/src/util/virnetdevbandwidth.h
index 871d0c962c..fff83222a9 100644
--- a/src/util/virnetdevbandwidth.h
+++ b/src/util/virnetdevbandwidth.h
@@ -38,6 +38,8 @@ struct _virNetDevBandwidth {
void virNetDevBandwidthFree(virNetDevBandwidthPtr def);
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virNetDevBandwidth, virNetDevBandwidthFree);
+
int virNetDevBandwidthSet(const char *ifname,
const virNetDevBandwidth *bandwidth,
bool hierarchical_class,
diff --git a/tests/virnetdevbandwidthtest.c b/tests/virnetdevbandwidthtest.c
index 5cbdd6ffea..2e76af3d0c 100644
--- a/tests/virnetdevbandwidthtest.c
+++ b/tests/virnetdevbandwidthtest.c
@@ -69,7 +69,7 @@ testVirNetDevBandwidthSet(const void *data)
int ret = -1;
const struct testSetStruct *info = data;
const char *iface = info->iface;
- virNetDevBandwidthPtr band = NULL;
+ g_autoptr(virNetDevBandwidth) band = NULL;
g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
char *actual_cmd = NULL;
@@ -98,7 +98,6 @@ testVirNetDevBandwidthSet(const void *data)
ret = 0;
cleanup:
virCommandSetDryRun(NULL, NULL, NULL);
- virNetDevBandwidthFree(band);
VIR_FREE(actual_cmd);
return ret;
}
--
2.29.2