Commit 03ba84ca authored by Hannes Reinecke's avatar Hannes Reinecke Committed by Nicholas Bellinger

target_core: simplify scsi_name_len calculation

scsi_name_len in spc_emulate_evpd_83 is calculated twice, with
the results of the first calculation discarded. So remove it.
And check for the maximum allowed length, too.
Signed-off-by: default avatarHannes Reinecke <hare@suse.de>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 9c6e164c
...@@ -365,16 +365,6 @@ spc_emulate_evpd_83(struct se_cmd *cmd, unsigned char *buf) ...@@ -365,16 +365,6 @@ spc_emulate_evpd_83(struct se_cmd *cmd, unsigned char *buf)
* section 7.5.1 Table 362 * section 7.5.1 Table 362
*/ */
check_scsi_name: check_scsi_name:
scsi_name_len = strlen(tpg->se_tpg_tfo->tpg_get_wwn(tpg));
/* UTF-8 ",t,0x<16-bit TPGT>" + NULL Terminator */
scsi_name_len += 10;
/* Check for 4-byte padding */
padding = ((-scsi_name_len) & 3);
if (padding != 0)
scsi_name_len += padding;
/* Header size + Designation descriptor */
scsi_name_len += 4;
buf[off] = buf[off] =
(tpg->se_tpg_tfo->get_fabric_proto_ident(tpg) << 4); (tpg->se_tpg_tfo->get_fabric_proto_ident(tpg) << 4);
buf[off++] |= 0x3; /* CODE SET == UTF-8 */ buf[off++] |= 0x3; /* CODE SET == UTF-8 */
...@@ -402,8 +392,11 @@ spc_emulate_evpd_83(struct se_cmd *cmd, unsigned char *buf) ...@@ -402,8 +392,11 @@ spc_emulate_evpd_83(struct se_cmd *cmd, unsigned char *buf)
* shall be no larger than 256 and shall be a multiple * shall be no larger than 256 and shall be a multiple
* of four. * of four.
*/ */
padding = ((-scsi_name_len) & 3);
if (padding) if (padding)
scsi_name_len += padding; scsi_name_len += padding;
if (scsi_name_len > 256)
scsi_name_len = 256;
buf[off-1] = scsi_name_len; buf[off-1] = scsi_name_len;
off += scsi_name_len; off += scsi_name_len;
......
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