[SCSI] mptbase: fix use-after-free's
authorAdrian Bunk <bunk@kernel.org>
Wed, 20 Feb 2008 02:03:57 +0000 (20:03 -0600)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Fri, 22 Feb 2008 15:08:13 +0000 (09:08 -0600)
ioc->name is used in the printk's after ioc has been freed.  Free
after prinks to fix this.

This patch fixes two use-after-free's introduced by
commit e78d5b8f1e73ab82f3fd041d05824cfee7d83a2c and spotted by the
Coverity checker.

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/message/fusion/mptbase.c

index bfda731..0c303c8 100644 (file)
@@ -1481,15 +1481,15 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)
 
        ioc->bars = pci_select_bars(pdev, IORESOURCE_MEM);
        if (pci_enable_device_mem(pdev)) {
-               kfree(ioc);
                printk(MYIOC_s_ERR_FMT "pci_enable_device_mem() "
                       "failed\n", ioc->name);
+               kfree(ioc);
                return r;
        }
        if (pci_request_selected_regions(pdev, ioc->bars, "mpt")) {
-               kfree(ioc);
                printk(MYIOC_s_ERR_FMT "pci_request_selected_regions() with "
                       "MEM failed\n", ioc->name);
+               kfree(ioc);
                return r;
        }