Patch "ftrace: Fix memory leak caused by not freeing entry in unregister_ftrace_direct()" has been added to the 5.6-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

    ftrace: Fix memory leak caused by not freeing entry in unregister_ftrace_direct()

to the 5.6-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:
     ftrace-fix-memory-leak-caused-by-not-freeing-entry-i.patch
and it can be found in the queue-5.6 subdirectory.

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



commit ae81b7340178886f6cec3d6da748770ed3119dba
Author: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
Date:   Wed Apr 22 21:38:45 2020 -0400

    ftrace: Fix memory leak caused by not freeing entry in unregister_ftrace_direct()
    
    [ Upstream commit 353da87921a5ec654e7e9024e083f099f1b33c97 ]
    
    kmemleak reported the following:
    
    unreferenced object 0xffff90d47127a920 (size 32):
      comm "modprobe", pid 1766, jiffies 4294792031 (age 162.568s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 22 01 00 00 00 00 ad de  ........".......
        00 78 12 a7 ff ff ff ff 00 00 b6 c0 ff ff ff ff  .x..............
      backtrace:
        [<00000000bb79e72e>] register_ftrace_direct+0xcb/0x3a0
        [<00000000295e4f79>] do_one_initcall+0x72/0x340
        [<00000000873ead18>] do_init_module+0x5a/0x220
        [<00000000974d9de5>] load_module+0x2235/0x2550
        [<0000000059c3d6ce>] __do_sys_finit_module+0xc0/0x120
        [<000000005a8611b4>] do_syscall_64+0x60/0x230
        [<00000000a0cdc49e>] entry_SYSCALL_64_after_hwframe+0x49/0xb3
    
    The entry used to save the direct descriptor needs to be freed
    when unregistering.
    
    Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index fd81c7de77a70..63089c70adbb6 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -5155,6 +5155,7 @@ int unregister_ftrace_direct(unsigned long ip, unsigned long addr)
 			list_del_rcu(&direct->next);
 			synchronize_rcu_tasks();
 			kfree(direct);
+			kfree(entry);
 			ftrace_direct_func_count--;
 		}
 	}



[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