Signed-off-by: Jiang Jiacheng <jiangjiacheng(a)huawei.com>
---
src/interface/interface_backend_udev.c | 22 ++++++++--------------
1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/src/interface/interface_backend_udev.c
b/src/interface/interface_backend_udev.c
index 979f187d87..54b43fb999 100644
--- a/src/interface/interface_backend_udev.c
+++ b/src/interface/interface_backend_udev.c
@@ -879,24 +879,23 @@ udevGetIfaceDefVlan(struct udev *udev G_GNUC_UNUSED,
const char *name,
virInterfaceDef *ifacedef)
{
- char *procpath = NULL;
- char *buf = NULL;
+ g_autofree char *procpath = NULL;
+ g_autofree char *buf = NULL;
char *vid_pos, *dev_pos;
size_t vid_len, dev_len;
const char *vid_prefix = "VID: ";
const char *dev_prefix = "\nDevice: ";
- int ret = -1;
procpath = g_strdup_printf("/proc/net/vlan/%s", name);
if (virFileReadAll(procpath, BUFSIZ, &buf) < 0)
- goto cleanup;
+ return -1;
if ((vid_pos = strstr(buf, vid_prefix)) == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("failed to find the VID for the VLAN device
'%s'"),
name);
- goto cleanup;
+ return -1;
}
vid_pos += strlen(vid_prefix);
@@ -905,14 +904,14 @@ udevGetIfaceDefVlan(struct udev *udev G_GNUC_UNUSED,
virReportError(VIR_ERR_INTERNAL_ERROR,
_("failed to find the VID for the VLAN device
'%s'"),
name);
- goto cleanup;
+ return -1;
}
if ((dev_pos = strstr(vid_pos + vid_len, dev_prefix)) == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("failed to find the real device for the VLAN device
'%s'"),
name);
- goto cleanup;
+ return -1;
}
dev_pos += strlen(dev_prefix);
@@ -920,18 +919,13 @@ udevGetIfaceDefVlan(struct udev *udev G_GNUC_UNUSED,
virReportError(VIR_ERR_INTERNAL_ERROR,
_("failed to find the real device for the VLAN device
'%s'"),
name);
- goto cleanup;
+ return -1;
}
ifacedef->data.vlan.tag = g_strndup(vid_pos, vid_len);
ifacedef->data.vlan.dev_name = g_strndup(dev_pos, dev_len);
- ret = 0;
-
- cleanup:
- VIR_FREE(procpath);
- VIR_FREE(buf);
- return ret;
+ return 0;
}
static virInterfaceDef * ATTRIBUTE_NONNULL(1)
--
2.33.0