lkml.org 
[lkml]   [2017]   [Dec]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.4 065/101] target/iscsi: Fix a race condition in iscsit_add_reject_from_cmd()
    Date
    From: Bart Van Assche <bart.vanassche@wdc.com>

    [ Upstream commit cfe2b621bb18d86e93271febf8c6e37622da2d14 ]

    Avoid that cmd->se_cmd.se_tfo is read after a command has already been
    freed.

    Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Mike Christie <mchristi@redhat.com>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    ---
    drivers/target/iscsi/iscsi_target.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
    index bb73401f5761..8a4092cd97ee 100644
    --- a/drivers/target/iscsi/iscsi_target.c
    +++ b/drivers/target/iscsi/iscsi_target.c
    @@ -674,6 +674,7 @@ static int iscsit_add_reject_from_cmd(
    unsigned char *buf)
    {
    struct iscsi_conn *conn;
    + const bool do_put = cmd->se_cmd.se_tfo != NULL;

    if (!cmd->conn) {
    pr_err("cmd->conn is NULL for ITT: 0x%08x\n",
    @@ -704,7 +705,7 @@ static int iscsit_add_reject_from_cmd(
    * Perform the kref_put now if se_cmd has already been setup by
    * scsit_setup_scsi_cmd()
    */
    - if (cmd->se_cmd.se_tfo != NULL) {
    + if (do_put) {
    pr_debug("iscsi reject: calling target_put_sess_cmd >>>>>>\n");
    target_put_sess_cmd(&cmd->se_cmd);
    }
    --
    2.11.0
    \
     
     \ /
      Last update: 2017-12-07 17:42    [W:4.270 / U:0.128 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site