scsi: megaraid: silence a static checker bug
authorDan Carpenter <dan.carpenter@oracle.com>
Thu, 3 May 2018 10:54:32 +0000 (13:54 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Aug 2018 05:50:36 +0000 (07:50 +0200)
[ Upstream commit 27e833dabab74ee665e487e291c9afc6d71effba ]

If we had more than 32 megaraid cards then it would cause memory
corruption.  That's not likely, of course, but it's handy to enforce it
and make the static checker happy.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/scsi/megaraid.c

index 7195cff51d4c4181f60ab3330796818771590798..9b6f5d024dbae8df9af3625e3d2b35c4a5543462 100644 (file)
@@ -4199,6 +4199,9 @@ megaraid_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
        int irq, i, j;
        int error = -ENODEV;
 
+       if (hba_count >= MAX_CONTROLLERS)
+               goto out;
+
        if (pci_enable_device(pdev))
                goto out;
        pci_set_master(pdev);