|
|
@@ -108,12 +108,17 @@ spc_emulate_inquiry_std(struct se_cmd *cmd, unsigned char *buf)
|
|
|
|
|
|
buf[7] = 0x2; /* CmdQue=1 */
|
|
|
|
|
|
- memcpy(&buf[8], "LIO-ORG ", 8);
|
|
|
- memset(&buf[16], 0x20, 16);
|
|
|
+ /*
|
|
|
+ * ASCII data fields described as being left-aligned shall have any
|
|
|
+ * unused bytes at the end of the field (i.e., highest offset) and the
|
|
|
+ * unused bytes shall be filled with ASCII space characters (20h).
|
|
|
+ */
|
|
|
+ memset(&buf[8], 0x20, 8 + 16 + 4);
|
|
|
+ memcpy(&buf[8], "LIO-ORG", sizeof("LIO-ORG") - 1);
|
|
|
memcpy(&buf[16], dev->t10_wwn.model,
|
|
|
- min_t(size_t, strlen(dev->t10_wwn.model), 16));
|
|
|
+ strnlen(dev->t10_wwn.model, 16));
|
|
|
memcpy(&buf[32], dev->t10_wwn.revision,
|
|
|
- min_t(size_t, strlen(dev->t10_wwn.revision), 4));
|
|
|
+ strnlen(dev->t10_wwn.revision, 4));
|
|
|
buf[4] = 31; /* Set additional length to 31 */
|
|
|
|
|
|
return 0;
|
|
|
@@ -251,7 +256,9 @@ check_t10_vend_desc:
|
|
|
buf[off] = 0x2; /* ASCII */
|
|
|
buf[off+1] = 0x1; /* T10 Vendor ID */
|
|
|
buf[off+2] = 0x0;
|
|
|
- memcpy(&buf[off+4], "LIO-ORG", 8);
|
|
|
+ /* left align Vendor ID and pad with spaces */
|
|
|
+ memset(&buf[off+4], 0x20, 8);
|
|
|
+ memcpy(&buf[off+4], "LIO-ORG", sizeof("LIO-ORG") - 1);
|
|
|
/* Extra Byte for NULL Terminator */
|
|
|
id_len++;
|
|
|
/* Identifier Length */
|