|
@@ -1503,6 +1503,16 @@ int iscsit_setup_nop_out(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
|
|
|
{
|
|
|
u32 payload_length = ntoh24(hdr->dlength);
|
|
|
|
|
|
+ if (!(hdr->flags & ISCSI_FLAG_CMD_FINAL)) {
|
|
|
+ pr_err("NopOUT Flag's, Left Most Bit not set, protocol error.\n");
|
|
|
+ if (!cmd)
|
|
|
+ return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR,
|
|
|
+ (unsigned char *)hdr);
|
|
|
+
|
|
|
+ return iscsit_reject_cmd(cmd, ISCSI_REASON_PROTOCOL_ERROR,
|
|
|
+ (unsigned char *)hdr);
|
|
|
+ }
|
|
|
+
|
|
|
if (hdr->itt == RESERVED_ITT && !(hdr->opcode & ISCSI_OP_IMMEDIATE)) {
|
|
|
pr_err("NOPOUT ITT is reserved, but Immediate Bit is"
|
|
|
" not set, protocol error.\n");
|