One of the paths returned -1 directly without going through the cleanup
section.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/node_device/node_device_udev.c | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
index 7c3bb762b3..cd1722f934 100644
--- a/src/node_device/node_device_udev.c
+++ b/src/node_device/node_device_udev.c
@@ -1020,10 +1020,9 @@ static int
udevProcessMediatedDevice(struct udev_device *dev,
virNodeDeviceDef *def)
{
- int ret = -1;
int iommugrp = -1;
- char *linkpath = NULL;
- char *canonicalpath = NULL;
+ g_autofree char *linkpath = NULL;
+ g_autofree char *canonicalpath = NULL;
virNodeDevCapMdev *data = &def->caps->data.mdev;
struct udev_device *parent_device = NULL;
@@ -1039,19 +1038,19 @@ udevProcessMediatedDevice(struct udev_device *dev,
virReportSystemError(errno,
_("failed to wait for file '%s' to
appear"),
linkpath);
- goto cleanup;
+ return -1;
}
if (virFileResolveLink(linkpath, &canonicalpath) < 0) {
virReportSystemError(errno, _("failed to resolve '%s'"),
linkpath);
- goto cleanup;
+ return -1;
}
data->type = g_path_get_basename(canonicalpath);
data->uuid = g_strdup(udev_device_get_sysname(dev));
if ((iommugrp = virMediatedDeviceGetIOMMUGroupNum(data->uuid)) < 0)
- goto cleanup;
+ return -1;
/* lookup the address of parent device */
parent_device = udev_device_get_parent(dev);
@@ -1072,11 +1071,7 @@ udevProcessMediatedDevice(struct udev_device *dev,
data->iommuGroupNumber = iommugrp;
- ret = 0;
- cleanup:
- VIR_FREE(linkpath);
- VIR_FREE(canonicalpath);
- return ret;
+ return 0;
}
--
2.33.1