diff mbox series

isdn: hfcpci: fix potential NULL pointer dereference

Message ID 20190309054605.23912-1-kjlu@umn.edu
State Changes Requested
Delegated to: David Miller
Headers show
Series isdn: hfcpci: fix potential NULL pointer dereference | expand

Commit Message

Kangjie Lu March 9, 2019, 5:46 a.m. UTC
In case ioremap fails, the fix reports an error and returns.

Signed-off-by: Kangjie Lu <kjlu@umn.edu>
---
 drivers/isdn/hardware/mISDN/hfcpci.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

David Miller March 10, 2019, 5:56 p.m. UTC | #1
From: Kangjie Lu <kjlu@umn.edu>
Date: Fri,  8 Mar 2019 23:46:04 -0600

> In case ioremap fails, the fix reports an error and returns.
> 
> Signed-off-by: Kangjie Lu <kjlu@umn.edu>

First, you shouldn't print the information log message if this fails.

Second you are leaking hc->hw.fifos, you have to clean up any resources
allocated up until this point if you fail.
diff mbox series

Patch

diff --git a/drivers/isdn/hardware/mISDN/hfcpci.c b/drivers/isdn/hardware/mISDN/hfcpci.c
index ebb3fa2e1d00..b400d6528a56 100644
--- a/drivers/isdn/hardware/mISDN/hfcpci.c
+++ b/drivers/isdn/hardware/mISDN/hfcpci.c
@@ -2036,6 +2036,11 @@  setup_hw(struct hfc_pci *hc)
 	       "HFC-PCI: defined at mem %#lx fifo %#lx(%#lx) IRQ %d HZ %d\n",
 	       (u_long) hc->hw.pci_io, (u_long) hc->hw.fifos,
 	       (u_long) hc->hw.dmahandle, hc->irq, HZ);
+	if (unlikely(!hc->hw.pci_io)) {
+		printk(KERN_WARNING
+		       "HFC-PCI: ioremap failed!\n");
+		return 1;
+	}
 	/* enable memory mapped ports, disable busmaster */
 	pci_write_config_word(hc->pdev, PCI_COMMAND, PCI_ENA_MEMIO);
 	hc->hw.int_m2 = 0;