mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-21 04:31:26 +00:00
qla2xxx-32gbit: 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. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8303 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -2343,14 +2343,14 @@ void qlt_send_resp_ctio(struct qla_qpair *qpair, struct qla_tgt_cmd *cmd,
|
||||
ctio->u.status1.scsi_status |=
|
||||
cpu_to_le16(SS_RESIDUAL_UNDER);
|
||||
|
||||
/* Response code and sense key */
|
||||
put_unaligned_le32(((0x70 << 24) | (sense_key << 8)),
|
||||
(&ctio->u.status1.sense_data)[0]);
|
||||
/* Fixed format sense data. */
|
||||
ctio->u.status1.sense_data[0] = 0x70;
|
||||
ctio->u.status1.sense_data[2] = sense_key;
|
||||
/* Additional sense length */
|
||||
put_unaligned_le32(0x0a, (&ctio->u.status1.sense_data)[1]);
|
||||
ctio->u.status1.sense_data[7] = 0xa;
|
||||
/* ASC and ASCQ */
|
||||
put_unaligned_le32(((asc << 24) | (ascq << 16)),
|
||||
(&ctio->u.status1.sense_data)[3]);
|
||||
ctio->u.status1.sense_data[12] = asc;
|
||||
ctio->u.status1.sense_data[13] = ascq;
|
||||
|
||||
/* Memory Barrier */
|
||||
wmb();
|
||||
|
||||
Reference in New Issue
Block a user