From 8ae706630edfbb4e317f2c0a51ca18b47c9cb56a Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Mon, 16 Feb 2015 17:36:58 -0800 Subject: [PATCH] iscsi-command.c: Better fix for the length bug for immediatedata Signed-off-by: Ronnie Sahlberg --- lib/iscsi-command.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/iscsi-command.c b/lib/iscsi-command.c index 2385a94..8ceedf4 100644 --- a/lib/iscsi-command.c +++ b/lib/iscsi-command.c @@ -326,13 +326,13 @@ iscsi_scsi_command_async(struct iscsi_context *iscsi, int lun, * subtract from first_burst_length. */ if (!(flags & ISCSI_PDU_SCSI_FINAL)) { - uint32_t len = task->expxferlen; + uint32_t len = task->expxferlen - pdu->payload_len; - if (len + pdu->payload_len > iscsi->first_burst_length) { - len = iscsi->first_burst_length - pdu->payload_len; + if (len > iscsi->first_burst_length) { + len = iscsi->first_burst_length; } iscsi_send_data_out(iscsi, pdu, 0xffffffff, - pdu->payload_len, len - pdu->payload_len); + pdu->payload_len, len); } /* remember cmdsn and itt so we can use task management */