Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ata: pata_pxa: Fix potential NULL pointer dereference in pxa_ata_probe()

devm_ioremap() returns NULL on error. Currently, pxa_ata_probe() does
not check for this case, which can result in a NULL pointer dereference.

Add NULL check after devm_ioremap() to prevent this issue.

Fixes: 2dc6c6f15da9 ("[ARM] pata_pxa: DMA-capable PATA driver")
Signed-off-by: Henry Martin <bsdhenrymartin@gmail.com>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>

authored by

Henry Martin and committed by
Damien Le Moal
ad320e40 0af2f6be

+6
+6
drivers/ata/pata_pxa.c
··· 223 223 224 224 ap->ioaddr.cmd_addr = devm_ioremap(&pdev->dev, cmd_res->start, 225 225 resource_size(cmd_res)); 226 + if (!ap->ioaddr.cmd_addr) 227 + return -ENOMEM; 226 228 ap->ioaddr.ctl_addr = devm_ioremap(&pdev->dev, ctl_res->start, 227 229 resource_size(ctl_res)); 230 + if (!ap->ioaddr.ctl_addr) 231 + return -ENOMEM; 228 232 ap->ioaddr.bmdma_addr = devm_ioremap(&pdev->dev, dma_res->start, 229 233 resource_size(dma_res)); 234 + if (!ap->ioaddr.bmdma_addr) 235 + return -ENOMEM; 230 236 231 237 /* 232 238 * Adjust register offsets