scsi: qla2xxx: Fix buffer overrun
authorQuinn Tran <qutran@marvell.com>
Wed, 7 Jun 2023 11:38:40 +0000 (17:08 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 15 Jun 2023 02:06:02 +0000 (22:06 -0400)
Klocwork warning: Buffer Overflow - Array Index Out of Bounds

Driver uses fc_els_flogi to calculate size of buffer.  The actual buffer is
nested inside of fc_els_flogi which is smaller.

Replace structure name to allow proper size calculation.

Cc: stable@vger.kernel.org
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Link: https://lore.kernel.org/r/20230607113843.37185-6-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_init.c

index 0df6eae..b0225f6 100644 (file)
@@ -5549,7 +5549,7 @@ static void qla_get_login_template(scsi_qla_host_t *vha)
        __be32 *q;
 
        memset(ha->init_cb, 0, ha->init_cb_size);
-       sz = min_t(int, sizeof(struct fc_els_flogi), ha->init_cb_size);
+       sz = min_t(int, sizeof(struct fc_els_csp), ha->init_cb_size);
        rval = qla24xx_get_port_login_templ(vha, ha->init_cb_dma,
                                            ha->init_cb, sz);
        if (rval != QLA_SUCCESS) {