From: Peter Krempa Date: Mon, 29 Jan 2024 21:32:33 +0000 (+0100) Subject: virPCIDeviceGetVPD: Handle errors in callers X-Git-Tag: v10.1.0-rc1~137 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e1dc851e7cbc4a525b095b0dd4fdc779a882b19c;p=thirdparty%2Flibvirt.git 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 Reviewed-by: Ján Tomko --- diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c index c68ac3af78..b8c91d6ecd 100644 --- a/src/conf/node_device_conf.c +++ b/src/conf/node_device_conf.c @@ -3052,6 +3052,8 @@ virNodeDeviceGetPCIVPDDynamicCap(virNodeDevCapPCIDev *devCapPCIDev) if ((res = virPCIDeviceGetVPD(pciDev))) { devCapPCIDev->flags |= VIR_NODE_DEV_CAP_FLAG_PCI_VPD; devCapPCIDev->vpd = g_steal_pointer(&res); + } else { + virResetLastError(); } } return 0; diff --git a/tests/virpcitest.c b/tests/virpcitest.c index d69a1b5118..017c283a44 100644 --- a/tests/virpcitest.c +++ b/tests/virpcitest.c @@ -344,7 +344,8 @@ testVirPCIDeviceGetVPD(const void *opaque) if (!dev) return -1; - res = virPCIDeviceGetVPD(dev); + if (!(res = virPCIDeviceGetVPD(dev))) + return -1; /* Only basic checks - full parser validation is done elsewhere. */ if (res->ro == NULL)