summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--pci.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 98c8417..43fa927 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,4 @@
+- do not crash if there're more than 100 PCI devices
- further use libpci in order to check for PCIe capability
Version 0.11.0 - 1 October 2009, Thierry Vignaud
diff --git a/pci.c b/pci.c
index 68c07af..5bd344f 100644
--- a/pci.c
+++ b/pci.c
@@ -51,7 +51,7 @@ extern struct pciusb_entries pci_probe(void) {
r.nb = 0;
r.entries = malloc(sizeof(struct pciusb_entry) * MAX_DEVICES);
- for (dev = pacc->devices; dev; dev = dev->next, r.nb++) {
+ for (dev = pacc->devices; dev && r.nb < MAX_DEVICES; dev = dev->next, r.nb++) {
struct pciusb_entry *e = &r.entries[r.nb];
memset(buf, 0, CONFIG_SPACE_SIZE); // make sure not to retrieve values from previous devices