The musl libc does not support closedir(0) resulting in a crash. Only
call closedir() if we successfully opened it.
Type: fix
Change-Id: I3198454f44735501047afc42b94b2fea273212f4
Signed-off-by: Benoît Ganne <bganne@cisco.com>
"is bound to IOMMU group and "
"vfio-pci driver is not loaded",
format_vlib_pci_addr, addr);
"is bound to IOMMU group and "
"vfio-pci driver is not loaded",
format_vlib_pci_addr, addr);
}
else
uio_drv_name = "vfio-pci";
}
else
uio_drv_name = "vfio-pci";
error = clib_error_return (0, "Skipping PCI device %U: missing "
"kernel VFIO or UIO driver",
format_vlib_pci_addr, addr);
error = clib_error_return (0, "Skipping PCI device %U: missing "
"kernel VFIO or UIO driver",
format_vlib_pci_addr, addr);
}
clib_error_free (error);
}
}
clib_error_free (error);
}
((strcmp ("vfio-pci", (char *) driver_name) == 0) ||
(strcmp ("uio_pci_generic", (char *) driver_name) == 0) ||
(strcmp ("igb_uio", (char *) driver_name) == 0)))
((strcmp ("vfio-pci", (char *) driver_name) == 0) ||
(strcmp ("uio_pci_generic", (char *) driver_name) == 0) ||
(strcmp ("igb_uio", (char *) driver_name) == 0)))
"Skipping PCI device %U: failed to "
"read /sys/class/net",
format_vlib_pci_addr, addr);
"Skipping PCI device %U: failed to "
"read /sys/class/net",
format_vlib_pci_addr, addr);
}
fd = socket (PF_INET, SOCK_DGRAM, 0);
if (fd < 0)
{
error = clib_error_return_unix (0, "socket");
}
fd = socket (PF_INET, SOCK_DGRAM, 0);
if (fd < 0)
{
error = clib_error_return_unix (0, "socket");
}
while ((e = readdir (dir)))
}
while ((e = readdir (dir)))
error = clib_error_return_unix (0, "ioctl fetch intf %s flags",
e->d_name);
close (fd);
error = clib_error_return_unix (0, "ioctl fetch intf %s flags",
e->d_name);
close (fd);
}
if (ifr.ifr_flags & IFF_UP)
}
if (ifr.ifr_flags & IFF_UP)
"interface %s is up",
format_vlib_pci_addr, addr, e->d_name);
close (fd);
"interface %s is up",
format_vlib_pci_addr, addr, e->d_name);
close (fd);
vec_free (s);
vec_free (dev_dir_name);
vec_free (driver_name);
vec_free (s);
vec_free (dev_dir_name);
vec_free (driver_name);