]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
scsi: qla2xxx: Correct the index of array
authorBikash Hazarika <bhazarika@marvell.com>
Wed, 7 Jun 2023 11:38:42 +0000 (17:08 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 15 Jun 2023 02:06:02 +0000 (22:06 -0400)
Klocwork reported array 'port_dstate_str' of size 10 may use index value(s)
10..15.

Add a fix to correct the index of array.

Cc: stable@vger.kernel.org
Signed-off-by: Bikash Hazarika <bhazarika@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Link: https://lore.kernel.org/r/20230607113843.37185-8-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_inline.h

index cce6e425c1214a9aabaf9fe2677ba1ef0419cdb9..946a39504a35108b7f6f36b1930cc7e432123a01 100644 (file)
@@ -109,11 +109,13 @@ qla2x00_set_fcport_disc_state(fc_port_t *fcport, int state)
 {
        int old_val;
        uint8_t shiftbits, mask;
+       uint8_t port_dstate_str_sz;
 
        /* This will have to change when the max no. of states > 16 */
        shiftbits = 4;
        mask = (1 << shiftbits) - 1;
 
+       port_dstate_str_sz = sizeof(port_dstate_str) / sizeof(char *);
        fcport->disc_state = state;
        while (1) {
                old_val = atomic_read(&fcport->shadow_disc_state);
@@ -121,7 +123,8 @@ qla2x00_set_fcport_disc_state(fc_port_t *fcport, int state)
                    old_val, (old_val << shiftbits) | state)) {
                        ql_dbg(ql_dbg_disc, fcport->vha, 0x2134,
                            "FCPort %8phC disc_state transition: %s to %s - portid=%06x.\n",
-                           fcport->port_name, port_dstate_str[old_val & mask],
+                           fcport->port_name, (old_val & mask) < port_dstate_str_sz ?
+                                   port_dstate_str[old_val & mask] : "Unknown",
                            port_dstate_str[state], fcport->d_id.b24);
                        return;
                }