diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c index 8013f233462d47acd4410a6b9462aea292b43efb..7c3296cdadb96d435177feb94776f50ff86d16a6 100644 --- a/src/util/virnetdev.c +++ b/src/util/virnetdev.c @@ -1000,6 +1000,9 @@ virNetDevGetVirtualFunctions(const char *pfname, char *pci_sysfs_device_link = NULL; char *pciConfigAddr = NULL; + *virt_fns = NULL; + *n_vfname = 0; + if (virNetDevSysfsFile(&pf_sysfs_device_link, pfname, "device") < 0) return ret; diff --git a/src/util/virpci.c b/src/util/virpci.c index ba60292f15f6627f3b23c239d52004f4892bb79d..d60bd6ba26d4436ec0cc0ffc260f43c43a57faad 100644 --- a/src/util/virpci.c +++ b/src/util/virpci.c @@ -2080,6 +2080,9 @@ virPCIGetVirtualFunctions(const char *sysfs_path, VIR_DEBUG("Attempting to get SR IOV virtual functions for device" "with sysfs path '%s'", sysfs_path); + *virtual_functions = NULL; + *num_virtual_functions = 0; + dir = opendir(sysfs_path); if (dir == NULL) { memset(errbuf, '\0', sizeof(errbuf)); @@ -2089,8 +2092,6 @@ virPCIGetVirtualFunctions(const char *sysfs_path, return ret; } - *virtual_functions = NULL; - *num_virtual_functions = 0; while ((entry = readdir(dir))) { if (STRPREFIX(entry->d_name, "virtfn")) { virPCIDeviceAddress *config_addr = NULL;