Commit a861b492 authored by Bart Van Assche's avatar Bart Van Assche Committed by Martin K. Petersen

scsi: qla2xxx: Avoid that qlt_send_resp_ctio() corrupts memory

The "(&ctio->u.status1.sense_data)[i]" where i >= 0 expressions in
qlt_send_resp_ctio() are probably typos and should have been
"(&ctio->u.status1.sense_data[4 * i])" instead. Instead of only fixing
these typos, modify the code for storing sense data such that it becomes
easy to read. This patch fixes a Coverity complaint about accessing an
array outside its bounds.

Cc: Himanshu Madhani <hmadhani@marvell.com>
Cc: Giridhar Malavali <gmalavali@marvell.com>
Fixes: be25152c ("qla2xxx: Improve T10-DIF/PI handling in driver.") # v4.11.
Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
Acked-by: default avatarHimanshu Madhani <hmadhani@marvell.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 300ec741
...@@ -2329,14 +2329,14 @@ void qlt_send_resp_ctio(struct qla_qpair *qpair, struct qla_tgt_cmd *cmd, ...@@ -2329,14 +2329,14 @@ void qlt_send_resp_ctio(struct qla_qpair *qpair, struct qla_tgt_cmd *cmd,
ctio->u.status1.scsi_status |= ctio->u.status1.scsi_status |=
cpu_to_le16(SS_RESIDUAL_UNDER); cpu_to_le16(SS_RESIDUAL_UNDER);
/* Response code and sense key */ /* Fixed format sense data. */
put_unaligned_le32(((0x70 << 24) | (sense_key << 8)), ctio->u.status1.sense_data[0] = 0x70;
(&ctio->u.status1.sense_data)[0]); ctio->u.status1.sense_data[2] = sense_key;
/* Additional sense length */ /* Additional sense length */
put_unaligned_le32(0x0a, (&ctio->u.status1.sense_data)[1]); ctio->u.status1.sense_data[7] = 0xa;
/* ASC and ASCQ */ /* ASC and ASCQ */
put_unaligned_le32(((asc << 24) | (ascq << 16)), ctio->u.status1.sense_data[12] = asc;
(&ctio->u.status1.sense_data)[3]); ctio->u.status1.sense_data[13] = ascq;
/* Memory Barrier */ /* Memory Barrier */
wmb(); wmb();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment