Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

iscsi-target: Reject unsupported multi PDU text command sequence

This patch adds a check to reject text commands with F_BIT=0 ||
C_BIT=1, as multi PDU text command sequences are currently
unsupported.

This avoids the case where a text command received with F_BIT=0,
was generating a text response with F_BIT=1 which is a protocol
error according to RFC-3720 Section 10.11.1.

Reported-by: Arshad Hussain <arshad.hussain@calsoftinc.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>

+7
+7
drivers/target/iscsi/iscsi_target.c
··· 1948 1948 (unsigned char *)hdr); 1949 1949 } 1950 1950 1951 + if (!(hdr->flags & ISCSI_FLAG_CMD_FINAL) || 1952 + (hdr->flags & ISCSI_FLAG_TEXT_CONTINUE)) { 1953 + pr_err("Multi sequence text commands currently not supported\n"); 1954 + return iscsit_reject_cmd(cmd, ISCSI_REASON_CMD_NOT_SUPPORTED, 1955 + (unsigned char *)hdr); 1956 + } 1957 + 1951 1958 pr_debug("Got Text Request: ITT: 0x%08x, CmdSN: 0x%08x," 1952 1959 " ExpStatSN: 0x%08x, Length: %u\n", hdr->itt, hdr->cmdsn, 1953 1960 hdr->exp_statsn, payload_length);