PCI: endpoint: epf-mhi: Avoid NULL dereference if DT lacks 'mmio'
BugLink: https://bugs.launchpad.net/bugs/2101915
[ Upstream commit 5089b3d874e9933d9842e90410d3af1520494757 ]
If platform_get_resource_byname() fails and returns NULL because DT lacks
an 'mmio' property for the MHI endpoint, dereferencing res->start will
cause a NULL pointer access. Add a check to prevent it.
Fixes: 1bf5f25324 ("PCI: endpoint: Add PCI Endpoint function driver for MHI bus")
Link: https://lore.kernel.org/r/20241105120735.1240728-1-quic_zhonhan@quicinc.com
Signed-off-by: Zhongqiu Han <quic_zhonhan@quicinc.com>
[kwilczynski: error message update per the review feedback]
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
[bhelgaas: commit log]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
CVE-2024-56689
Signed-off-by: Koichiro Den <koichiro.den@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
This commit is contained in:
committed by
Stefan Bader
parent
2942edfeab
commit
0b1a6e0e11
@@ -832,12 +832,18 @@ static int pci_epf_mhi_bind(struct pci_epf *epf)
|
||||
{
|
||||
struct pci_epf_mhi *epf_mhi = epf_get_drvdata(epf);
|
||||
struct pci_epc *epc = epf->epc;
|
||||
struct device *dev = &epf->dev;
|
||||
struct platform_device *pdev = to_platform_device(epc->dev.parent);
|
||||
struct resource *res;
|
||||
int ret;
|
||||
|
||||
/* Get MMIO base address from Endpoint controller */
|
||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mmio");
|
||||
if (!res) {
|
||||
dev_err(dev, "Failed to get \"mmio\" resource\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
epf_mhi->mmio_phys = res->start;
|
||||
epf_mhi->mmio_size = resource_size(res);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user