Patch "target/iscsi: Fix iSCSI task reassignment handling" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
target/iscsi: Fix iSCSI task reassignment handling
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
target-iscsi-fix-iscsi-task-reassignment-handling.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
59b6986dbfcdab96a971f9663221849de79a7556Mon Sep 17 00:00:00 2001
From: Bart Van Assche <[email protected]>
Date: Thu, 5 Jan 2017 12:39:57 +0100
Subject: target/iscsi: Fix iSCSI task reassignment handling
From: Bart Van Assche <[email protected]>
commit 59b6986dbfcdab96a971f9663221849de79a7556 upstream.
Allocate a task management request structure for all task management requests, including task reassignment. This change avoids that the se_tmr->response assignment dereferences an uninitialized se_tmr pointer.
--- drivers/target/iscsi/iscsi_target.c | 19 +++++++------------ include/target/target_core_base.h | 1 + 2 files changed, 8 insertions(+), 12 deletions(-)
drivers/target/iscsi/iscsi_target.c +7 -12
@@ -1940,7 +1940,7 @@ iscsit_handle_task_mgt_cmd(struct iscsi_struct iscsi_tm *hdr;int out_of_order_cmdsn =0 , ret;bool sess_ref = false; -u8 function; +u8 function, tcm_function =TMR_UNKNOWN ; hdr = (struct iscsi_tm *) buf; hdr->flags &= ~ISCSI_FLAG_CMD_FINAL ;
@@ -1986,10 +1986,6 @@ iscsit_handle_task_mgt_cmd(struct iscsi_* LIO-Target $FABRIC_MOD */ if (function !=ISCSI_TM_FUNC_TASK_REASSIGN ) { - -u8 tcm_function; -int ret; -transport_init_se_cmd (&cmd->se_cmd, &iscsi_ops, conn->sess->se_sess,0 ,DMA_NONE ,TCM_SIMPLE_TAG , cmd->sense_buffer +2 );
@@ -2025,15 +2021,14 @@ iscsit_handle_task_mgt_cmd(struct iscsi_return iscsit_add_reject_cmd (cmd,ISCSI_REASON_BOOKMARK_NO_RESOURCES , buf); } - - ret =core_tmr_alloc_req (&cmd->se_cmd, cmd->tmr_req, - tcm_function,GFP_KERNEL ); -if (ret <0 ) -return iscsit_add_reject_cmd (cmd, + } + ret =core_tmr_alloc_req (&cmd->se_cmd, cmd->tmr_req, tcm_function, +GFP_KERNEL ); +if (ret <0 ) +return iscsit_add_reject_cmd (cmd,ISCSI_REASON_BOOKMARK_NO_RESOURCES , buf); - cmd->tmr_req->se_tmr_req = cmd->se_cmd.se_tmr_req; - } + cmd->tmr_req->se_tmr_req = cmd->se_cmd.se_tmr_req; cmd->iscsi_opcode =ISCSI_OP_SCSI_TMFUNC ; cmd->i_state =ISTATE_SEND_TASKMGTRSP ;
include/target/target_core_base.h +1 -0
@@ -197,6 +197,7 @@ enum tcm_tmreq_table {TMR_LUN_RESET =5 ,TMR_TARGET_WARM_RESET =6 ,TMR_TARGET_COLD_RESET =7 , + TMR_UNKNOWN = 0xff, };/* fabric independent task management response values */
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/target-iscsi-fix-iscsi-task-reassignment-handling.patch