diff --git a/plugins/sysinfo/unix/pci.c b/plugins/sysinfo/unix/pci.c index a887245c..10addf6f 100644 --- a/plugins/sysinfo/unix/pci.c +++ b/plugins/sysinfo/unix/pci.c @@ -92,6 +92,11 @@ int pci_find_by_class(u16 *class, char *vendor, char *device) struct pci_dev *p; int nomatch = 1; + /* libpci has no way to report errors it calls exit() + * so we need to manually avoid potential failures like this one */ + if (!g_file_test ("/proc/bus/pci", G_FILE_TEST_EXISTS)) + return 1; + pacc = pci_alloc(); pci_filter_init(pacc, &filter); pci_init(pacc); @@ -161,6 +166,6 @@ void pci_find_fullname(char *fullname, char *vendor, char *device) if (cardfound == 1) g_snprintf(fullname, bsize, "%s %s", vendorname, devicename); else - g_snprintf(fullname, bsize, "%s:%s", vendor, device); + g_snprintf(fullname, bsize, "%s:%s", vendor, device); fclose(fp); }