Commit c58a252b authored by tangwenji's avatar tangwenji Committed by Nicholas Bellinger

target: fix buffer offset in core_scsi3_pri_read_full_status

When at least two initiators register pr on the same LUN,
the target returns the exception data due to buffer offset
error, therefore the initiator executes command 'sg_persist -s'
may cause the initiator to appear segfault error.

This fixes a regression originally introduced by:

  commit a85d667e
  Author: Bart Van Assche <bart.vanassche@sandisk.com>
  Date:   Tue May 23 16:48:27 2017 -0700

      target: Use {get,put}_unaligned_be*() instead of open coding these functions
Signed-off-by: default avatartangwenji <tang.wenji@zte.com.cn>
Cc: stable@vger.kernel.org # 4.13+
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 88fb2fa7
...@@ -4011,6 +4011,7 @@ core_scsi3_pri_read_full_status(struct se_cmd *cmd) ...@@ -4011,6 +4011,7 @@ core_scsi3_pri_read_full_status(struct se_cmd *cmd)
* Set the ADDITIONAL DESCRIPTOR LENGTH * Set the ADDITIONAL DESCRIPTOR LENGTH
*/ */
put_unaligned_be32(desc_len, &buf[off]); put_unaligned_be32(desc_len, &buf[off]);
off += 4;
/* /*
* Size of full desctipor header minus TransportID * Size of full desctipor header minus TransportID
* containing $FABRIC_MOD specific) initiator device/port * containing $FABRIC_MOD specific) initiator device/port
......
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