isci: possible buffer overflow in isci_parse_oem_parameters fixed
authorMaciej Patelczyk <maciej.patelczyk@intel.com>
Tue, 21 Jun 2011 22:03:13 +0000 (22:03 +0000)
committerDan Williams <dan.j.williams@intel.com>
Sun, 3 Jul 2011 11:04:51 +0000 (04:04 -0700)
scu_index is a parameter of isci_parse_eom_parameters and is an index
in controller table. There is a check: scu_index > SCI_MAX_CONTROLLERS
which is insufficient and should be: scu_index >= SCI_MAX_CONTROLLERS.
scu_index is used as an index in the table which size is
SCI_MAX_CONTROLLERS.

Signed-off-by: Maciej Patelczyk <maciej.patelczyk@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/scsi/isci/probe_roms.c

index bc52a617407076c19e9f4fb369de74c8cc2cd512..99b13c191877c549177ac6b7b8f6624521c0c8dc 100644 (file)
@@ -125,7 +125,7 @@ enum sci_status isci_parse_oem_parameters(union scic_oem_parameters *oem_params,
                                          struct isci_orom *orom, int scu_index)
 {
        /* check for valid inputs */
-       if (scu_index < 0 || scu_index > SCI_MAX_CONTROLLERS ||
+       if (scu_index < 0 || scu_index >= SCI_MAX_CONTROLLERS ||
            scu_index > orom->hdr.num_elements || !oem_params)
                return -EINVAL;