Message ID | 20210208111734.34034-1-mlombard@redhat.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | scsi: scsi_debug: fix a memory leak. | expand |
On 2021-02-08 6:17 a.m., Maurizio Lombardi wrote: > The sdebug_q_arr pointer must be freed when the module is unloaded > > # cat /sys/kernel/debug/kmemleak > unreferenced object 0xffff888e1cfb0000 (size 4096): > comm "modprobe", pid 165555, jiffies 4325987516 (age 685.194s) > hex dump (first 32 bytes): > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ > backtrace: > [<00000000458f4f5d>] 0xffffffffc06702d9 > [<000000003edc4b1f>] do_one_initcall+0xe9/0x57d > [<00000000da7d518c>] do_init_module+0x1d1/0x6f0 > [<000000009a6a9248>] load_module+0x36bd/0x4f50 > [<00000000ddb0c3ce>] __do_sys_init_module+0x1db/0x260 > [<000000009532db57>] do_syscall_64+0xa5/0x420 > [<000000002916b13d>] entry_SYSCALL_64_after_hwframe+0x6a/0xdf > > Fixes: 87c715dcde633f4cc4690a24a240e838181e6a9d > > Signed-off-by: Maurizio Lombardi <mlombard@redhat.com> Acked-by: Douglas Gilbert <dgilbert@interlog.com> Thanks. > --- > drivers/scsi/scsi_debug.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c > index 4a08c450b756..b6540b92f566 100644 > --- a/drivers/scsi/scsi_debug.c > +++ b/drivers/scsi/scsi_debug.c > @@ -6881,6 +6881,7 @@ static void __exit scsi_debug_exit(void) > > sdebug_erase_all_stores(false); > xa_destroy(per_store_ap); > + kfree(sdebug_q_arr); > } > > device_initcall(scsi_debug_init); >
On Mon, 8 Feb 2021 12:17:34 +0100, Maurizio Lombardi wrote: > The sdebug_q_arr pointer must be freed when the module is unloaded > > # cat /sys/kernel/debug/kmemleak > unreferenced object 0xffff888e1cfb0000 (size 4096): > comm "modprobe", pid 165555, jiffies 4325987516 (age 685.194s) > hex dump (first 32 bytes): > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ > backtrace: > [<00000000458f4f5d>] 0xffffffffc06702d9 > [<000000003edc4b1f>] do_one_initcall+0xe9/0x57d > [<00000000da7d518c>] do_init_module+0x1d1/0x6f0 > [<000000009a6a9248>] load_module+0x36bd/0x4f50 > [<00000000ddb0c3ce>] __do_sys_init_module+0x1db/0x260 > [<000000009532db57>] do_syscall_64+0xa5/0x420 > [<000000002916b13d>] entry_SYSCALL_64_after_hwframe+0x6a/0xdf > > [...] Applied to 5.11/scsi-fixes, thanks! [1/1] scsi: scsi_debug: fix a memory leak. https://git.kernel.org/mkp/scsi/c/f852c596f2ee
diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c index 4a08c450b756..b6540b92f566 100644 --- a/drivers/scsi/scsi_debug.c +++ b/drivers/scsi/scsi_debug.c @@ -6881,6 +6881,7 @@ static void __exit scsi_debug_exit(void) sdebug_erase_all_stores(false); xa_destroy(per_store_ap); + kfree(sdebug_q_arr); } device_initcall(scsi_debug_init);
The sdebug_q_arr pointer must be freed when the module is unloaded # cat /sys/kernel/debug/kmemleak unreferenced object 0xffff888e1cfb0000 (size 4096): comm "modprobe", pid 165555, jiffies 4325987516 (age 685.194s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<00000000458f4f5d>] 0xffffffffc06702d9 [<000000003edc4b1f>] do_one_initcall+0xe9/0x57d [<00000000da7d518c>] do_init_module+0x1d1/0x6f0 [<000000009a6a9248>] load_module+0x36bd/0x4f50 [<00000000ddb0c3ce>] __do_sys_init_module+0x1db/0x260 [<000000009532db57>] do_syscall_64+0xa5/0x420 [<000000002916b13d>] entry_SYSCALL_64_after_hwframe+0x6a/0xdf Fixes: 87c715dcde633f4cc4690a24a240e838181e6a9d Signed-off-by: Maurizio Lombardi <mlombard@redhat.com> --- drivers/scsi/scsi_debug.c | 1 + 1 file changed, 1 insertion(+)