Messages in this thread Patch in this message | | | From | Alexey Khoroshilov <> | Subject | [PATCH] firewire: nosy: do not ignore errors in ioremap_nocache() | Date | Sun, 25 Sep 2016 00:19:05 +0300 |
| |
There is no check if ioremap_nocache() returns a valid pointer. Potentially it can lead to null pointer dereference.
Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> --- drivers/firewire/nosy.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/drivers/firewire/nosy.c b/drivers/firewire/nosy.c index 631c977b0da5..f68a749f740b 100644 --- a/drivers/firewire/nosy.c +++ b/drivers/firewire/nosy.c @@ -566,6 +566,11 @@ add_card(struct pci_dev *dev, const struct pci_device_id *unused) lynx->registers = ioremap_nocache(pci_resource_start(dev, 0), PCILYNX_MAX_REGISTER); + if (lynx->registers == NULL) { + dev_err(&dev->dev, "Failed to map registers\n"); + ret = -ENOMEM; + goto fail_deallocate2; + } lynx->rcv_start_pcl = pci_alloc_consistent(lynx->pci_device, sizeof(struct pcl), &lynx->rcv_start_pcl_bus); @@ -679,6 +684,8 @@ fail_deallocate: pci_free_consistent(lynx->pci_device, PAGE_SIZE, lynx->rcv_buffer, lynx->rcv_buffer_bus); iounmap(lynx->registers); + +fail_deallocate2: kfree(lynx); fail_disable: -- 2.7.4
| |