virPCIDeviceGetVPD: Handle errors in callers

Until now 'virPCIDeviceGetVPD' couldn't reallistically raise an error,
but that will change. Handle the errors by either resetting it if we'd
be ignoring it or forward it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2024-01-29 22:32:33 +01:00
parent bac86dd36e
commit e1dc851e7c
2 changed files with 4 additions and 1 deletions

View File

@ -3052,6 +3052,8 @@ virNodeDeviceGetPCIVPDDynamicCap(virNodeDevCapPCIDev *devCapPCIDev)
if ((res = virPCIDeviceGetVPD(pciDev))) { if ((res = virPCIDeviceGetVPD(pciDev))) {
devCapPCIDev->flags |= VIR_NODE_DEV_CAP_FLAG_PCI_VPD; devCapPCIDev->flags |= VIR_NODE_DEV_CAP_FLAG_PCI_VPD;
devCapPCIDev->vpd = g_steal_pointer(&res); devCapPCIDev->vpd = g_steal_pointer(&res);
} else {
virResetLastError();
} }
} }
return 0; return 0;

View File

@ -344,7 +344,8 @@ testVirPCIDeviceGetVPD(const void *opaque)
if (!dev) if (!dev)
return -1; return -1;
res = virPCIDeviceGetVPD(dev); if (!(res = virPCIDeviceGetVPD(dev)))
return -1;
/* Only basic checks - full parser validation is done elsewhere. */ /* Only basic checks - full parser validation is done elsewhere. */
if (res->ro == NULL) if (res->ro == NULL)