Patch "scsi: target: core: Fix target_cmd_counter leak" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    scsi: target: core: Fix target_cmd_counter leak

to the 6.1-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:
     scsi-target-core-fix-target_cmd_counter-leak.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit c0080ca18194b18690edbffa64aae6ad7a83a0c7
Author: David Disseldorp <ddiss@xxxxxxx>
Date:   Thu Aug 31 20:34:59 2023 +0200

    scsi: target: core: Fix target_cmd_counter leak
    
    [ Upstream commit d14e3e553e05cb763964c991fe6acb0a6a1c6f9c ]
    
    The target_cmd_counter struct allocated via target_alloc_cmd_counter() is
    never freed, resulting in leaks across various transport types, e.g.:
    
     unreferenced object 0xffff88801f920120 (size 96):
      comm "sh", pid 102, jiffies 4294892535 (age 713.412s)
      hex dump (first 32 bytes):
        07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        00 00 00 00 00 00 00 00 38 01 92 1f 80 88 ff ff  ........8.......
      backtrace:
        [<00000000e58a6252>] kmalloc_trace+0x11/0x20
        [<0000000043af4b2f>] target_alloc_cmd_counter+0x17/0x90 [target_core_mod]
        [<000000007da2dfa7>] target_setup_session+0x2d/0x140 [target_core_mod]
        [<0000000068feef86>] tcm_loop_tpg_nexus_store+0x19b/0x350 [tcm_loop]
        [<000000006a80e021>] configfs_write_iter+0xb1/0x120
        [<00000000e9f4d860>] vfs_write+0x2e4/0x3c0
        [<000000008143433b>] ksys_write+0x80/0xb0
        [<00000000a7df29b2>] do_syscall_64+0x42/0x90
        [<0000000053f45fb8>] entry_SYSCALL_64_after_hwframe+0x6e/0xd8
    
    Free the structure alongside the corresponding iscsit_conn / se_sess
    parent.
    
    Signed-off-by: David Disseldorp <ddiss@xxxxxxx>
    Link: https://lore.kernel.org/r/20230831183459.6938-1-ddiss@xxxxxxx
    Fixes: becd9be6069e ("scsi: target: Move sess cmd counter to new struct")
    Reviewed-by: Mike Christie <michael.christie@xxxxxxxxxx>
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index 687adc9e086ca..0686882bcbda3 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -264,6 +264,7 @@ void target_free_cmd_counter(struct target_cmd_counter *cmd_cnt)
 		percpu_ref_put(&cmd_cnt->refcnt);
 
 	percpu_ref_exit(&cmd_cnt->refcnt);
+	kfree(cmd_cnt);
 }
 EXPORT_SYMBOL_GPL(target_free_cmd_counter);
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux