sysinfo: Avoid libpci crash when pci not available

Turns out libpci is an awful library that on any error calls
exit() and has no way of indicating an error otherwise...
This commit is contained in:
Patrick Griffis 2017-11-18 00:14:13 -05:00
parent c6d9e26e2b
commit 47b653cc7c
1 changed files with 6 additions and 1 deletions

View File

@ -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);
}