mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
hostusb: closedir only if non-NULL; rename labels: s/error/cleanup/
* src/util/hostusb.c (usbSysReadFile): Rename labels s/error/cleanup/ (usbFindBusByVendor): Likewise. And closedir only if non-NULL.
This commit is contained in:
parent
ba1d379ce8
commit
fb54230b60
@ -70,20 +70,20 @@ static int usbSysReadFile(virConnectPtr conn,
|
|||||||
tmp = virAsprintf(&filename, USB_SYSFS "/devices/%s/%s", d_name, f_name);
|
tmp = virAsprintf(&filename, USB_SYSFS "/devices/%s/%s", d_name, f_name);
|
||||||
if (tmp < 0) {
|
if (tmp < 0) {
|
||||||
virReportOOMError(conn);
|
virReportOOMError(conn);
|
||||||
goto error;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virFileReadAll(filename, 1024, &buf) < 0)
|
if (virFileReadAll(filename, 1024, &buf) < 0)
|
||||||
goto error;
|
goto cleanup;
|
||||||
|
|
||||||
if (virStrToLong_ui(buf, &ignore, base, value) < 0) {
|
if (virStrToLong_ui(buf, &ignore, base, value) < 0) {
|
||||||
usbReportError(conn, VIR_ERR_INTERNAL_ERROR,
|
usbReportError(conn, VIR_ERR_INTERNAL_ERROR,
|
||||||
_("Could not parse usb file %s"), filename);
|
_("Could not parse usb file %s"), filename);
|
||||||
goto error;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
error:
|
cleanup:
|
||||||
VIR_FREE(filename);
|
VIR_FREE(filename);
|
||||||
VIR_FREE(buf);
|
VIR_FREE(buf);
|
||||||
return ret;
|
return ret;
|
||||||
@ -103,7 +103,7 @@ static int usbFindBusByVendor(virConnectPtr conn,
|
|||||||
virReportSystemError(conn, errno,
|
virReportSystemError(conn, errno,
|
||||||
_("Could not open directory %s"),
|
_("Could not open directory %s"),
|
||||||
USB_SYSFS "/devices");
|
USB_SYSFS "/devices");
|
||||||
goto error;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
while ((de = readdir(dir))) {
|
while ((de = readdir(dir))) {
|
||||||
@ -113,10 +113,10 @@ static int usbFindBusByVendor(virConnectPtr conn,
|
|||||||
|
|
||||||
if (usbSysReadFile(conn, "idVendor", de->d_name,
|
if (usbSysReadFile(conn, "idVendor", de->d_name,
|
||||||
16, &found_vend) < 0)
|
16, &found_vend) < 0)
|
||||||
goto error;
|
goto cleanup;
|
||||||
if (usbSysReadFile(conn, "idProduct", de->d_name,
|
if (usbSysReadFile(conn, "idProduct", de->d_name,
|
||||||
16, &found_prod) < 0)
|
16, &found_prod) < 0)
|
||||||
goto error;
|
goto cleanup;
|
||||||
|
|
||||||
if (found_prod == product && found_vend == vendor) {
|
if (found_prod == product && found_vend == vendor) {
|
||||||
/* Lookup bus.addr info */
|
/* Lookup bus.addr info */
|
||||||
@ -130,12 +130,12 @@ static int usbFindBusByVendor(virConnectPtr conn,
|
|||||||
usbReportError(conn, VIR_ERR_INTERNAL_ERROR,
|
usbReportError(conn, VIR_ERR_INTERNAL_ERROR,
|
||||||
_("Failed to parse dir name '%s'"),
|
_("Failed to parse dir name '%s'"),
|
||||||
de->d_name);
|
de->d_name);
|
||||||
goto error;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usbSysReadFile(conn, "devnum", de->d_name,
|
if (usbSysReadFile(conn, "devnum", de->d_name,
|
||||||
10, &found_addr) < 0)
|
10, &found_addr) < 0)
|
||||||
goto error;
|
goto cleanup;
|
||||||
|
|
||||||
*bus = found_bus;
|
*bus = found_bus;
|
||||||
*devno = found_addr;
|
*devno = found_addr;
|
||||||
@ -150,8 +150,12 @@ static int usbFindBusByVendor(virConnectPtr conn,
|
|||||||
else
|
else
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
error:
|
cleanup:
|
||||||
closedir (dir);
|
if (dir) {
|
||||||
|
int saved_errno = errno;
|
||||||
|
closedir (dir);
|
||||||
|
errno = saved_errno;
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user