From c9275dadefe42418da3c15726f2a80a550b50156 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Thu, 12 Oct 2023 17:41:14 +0000 Subject: vlib: allow unpriviledged vlib_pci_get_device_info() When running unpriviledged sysfs allows reading only first 64 bytes of PCI config space. Change-Id: I62d18328925a2e4936406c2842154b20182cacb9 Type: improvement Signed-off-by: Damjan Marion --- src/vlib/linux/pci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/vlib/linux') diff --git a/src/vlib/linux/pci.c b/src/vlib/linux/pci.c index 9661827ea0d..1a70c568176 100644 --- a/src/vlib/linux/pci.c +++ b/src/vlib/linux/pci.c @@ -238,7 +238,8 @@ vlib_pci_get_device_info (vlib_main_t * vm, vlib_pci_addr_t * addr, /* You can only read more that 64 bytes of config space as root; so we try to read the full space but fall back to just the first 64 bytes. */ - if (read (fd, &di->config, sizeof (di->config)) < sizeof (di->config)) + if (read (fd, &di->config, sizeof (di->config)) < + sizeof (vlib_pci_config_hdr_t)) { err = clib_error_return_unix (0, "read `%s'", f); close (fd); -- cgit 1.2.3-korg