pci: Add boundary check for hose->regions
Make sure that we don't overflow the hose->regions array, otherwise we would end up overwriting the hose->region_count field and cause mayhem to ensue. Also print an error message when we'd be overflowing because it indicates that there aren't enough regions available and the number needs to be increased. Signed-off-by: Thierry Reding <treding@nvidia.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
248b873541
commit
d94d9aa675
@ -918,6 +918,11 @@ static void decode_regions(struct pci_controller *hose, ofnode parent_node,
|
||||
return;
|
||||
|
||||
for (i = 0; i < CONFIG_NR_DRAM_BANKS; ++i) {
|
||||
if (hose->region_count == MAX_PCI_REGIONS) {
|
||||
pr_err("maximum number of regions parsed, aborting\n");
|
||||
break;
|
||||
}
|
||||
|
||||
if (bd->bi_dram[i].size) {
|
||||
pci_set_region(hose->regions + hose->region_count++,
|
||||
bd->bi_dram[i].start,
|
||||
|
Loading…
Reference in New Issue
Block a user