aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2024-09-19 14:25:31 -0500
committerBjorn Helgaas <bhelgaas@google.com>2024-09-19 14:25:31 -0500
commitaf6491944072755032c4b2f3a96bbced4148e9c9 (patch)
tree531335d41764dc131acdaf589d90e1f74826972b
parentMerge branch 'pci/controller/keystone' (diff)
parentPCI: kirin: Fix buffer overflow in kirin_pcie_parse_port() (diff)
downloadwireguard-linux-af6491944072755032c4b2f3a96bbced4148e9c9.tar.xz
wireguard-linux-af6491944072755032c4b2f3a96bbced4148e9c9.zip
Merge branch 'pci/controller/kirin'
- Fix potential buffer overflow in kirin_pcie_parse_port() (Alexandra Diupina) * pci/controller/kirin: PCI: kirin: Fix buffer overflow in kirin_pcie_parse_port()
Diffstat (limited to '')
-rw-r--r--drivers/pci/controller/dwc/pcie-kirin.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/pci/controller/dwc/pcie-kirin.c b/drivers/pci/controller/dwc/pcie-kirin.c
index 0a29136491b8..85a2c77b1835 100644
--- a/drivers/pci/controller/dwc/pcie-kirin.c
+++ b/drivers/pci/controller/dwc/pcie-kirin.c
@@ -420,11 +420,11 @@ static int kirin_pcie_parse_port(struct kirin_pcie *pcie,
"unable to get a valid reset gpio\n");
}
- pcie->num_slots++;
- if (pcie->num_slots > MAX_PCI_SLOTS) {
+ if (pcie->num_slots + 1 >= MAX_PCI_SLOTS) {
dev_err(dev, "Too many PCI slots!\n");
return -EINVAL;
}
+ pcie->num_slots++;
ret = of_pci_get_devfn(child);
if (ret < 0) {