virPCIDeviceAddressPtr addr)
{
virZPCIDeviceAddress def = { 0 };
- char *uid;
- char *fid;
- int ret = -1;
+ g_autofree char *uid = NULL;
+ g_autofree char *fid = NULL;
uid = virXMLPropString(node, "uid");
fid = virXMLPropString(node, "fid");
virStrToLong_uip(uid, NULL, 0, &def.uid) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Cannot parse <address> 'uid' attribute"));
- goto cleanup;
+ return -1;
}
if (fid &&
virStrToLong_uip(fid, NULL, 0, &def.fid) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Cannot parse <address> 'fid' attribute"));
- goto cleanup;
+ return -1;
}
if (!virZPCIDeviceAddressIsEmpty(&def) &&
!virZPCIDeviceAddressIsValid(&def))
- goto cleanup;
+ return -1;
addr->zpci = def;
- ret = 0;
- cleanup:
- VIR_FREE(uid);
- VIR_FREE(fid);
- return ret;
+ return 0;
}
void