projects
/
GitHub
/
MotorolaMobilityLLC
/
kernel-slsi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0833289
)
ftrace: Fix memory leak in ftrace_graph_release()
author
Luis Henriques
<lhenriques@suse.com>
Thu, 25 May 2017 15:20:38 +0000
(16:20 +0100)
committer
Steven Rostedt (VMware)
<rostedt@goodmis.org>
Sat, 27 May 2017 02:35:48 +0000
(22:35 -0400)
ftrace_hash is being kfree'ed in ftrace_graph_release(), however the
->buckets field is not. This results in a memory leak that is easily
captured by kmemleak:
unreferenced object 0xffff880038afe000 (size 8192):
comm "trace-cmd", pid 238, jiffies
4294916898
(age 9.736s)
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:
[<
ffffffff815f561e
>] kmemleak_alloc+0x4e/0xb0
[<
ffffffff8113964d
>] __kmalloc+0x12d/0x1a0
[<
ffffffff810bf6d1
>] alloc_ftrace_hash+0x51/0x80
[<
ffffffff810c0523
>] __ftrace_graph_open.isra.39.constprop.46+0xa3/0x100
[<
ffffffff810c05e8
>] ftrace_graph_open+0x68/0xa0
[<
ffffffff8114003d
>] do_dentry_open.isra.1+0x1bd/0x2d0
[<
ffffffff81140df7
>] vfs_open+0x47/0x60
[<
ffffffff81150f95
>] path_openat+0x2a5/0x1020
[<
ffffffff81152d6a
>] do_filp_open+0x8a/0xf0
[<
ffffffff811411df
>] do_sys_open+0x12f/0x200
[<
ffffffff811412ce
>] SyS_open+0x1e/0x20
[<
ffffffff815fa6e0
>] entry_SYSCALL_64_fastpath+0x13/0x94
[<
ffffffffffffffff
>] 0xffffffffffffffff
Link:
http://lkml.kernel.org/r/20170525152038.7661-1-lhenriques@suse.com
Cc: stable@vger.kernel.org
Fixes:
b9b0c831bed2
("ftrace: Convert graph filter to use hash tables")
Signed-off-by: Luis Henriques <lhenriques@suse.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
kernel/trace/ftrace.c
patch
|
blob
|
blame
|
history
diff --git
a/kernel/trace/ftrace.c
b/kernel/trace/ftrace.c
index 74fdfe9ed3dba7fa659cb11feafac25919984bbb..9e5841dc14b5fa62e0c1470df704c3dc9b99f8ad 100644
(file)
--- a/
kernel/trace/ftrace.c
+++ b/
kernel/trace/ftrace.c
@@
-5063,7
+5063,7
@@
ftrace_graph_release(struct inode *inode, struct file *file)
}
out:
-
kfree
(fgd->new_hash);
+
free_ftrace_hash
(fgd->new_hash);
kfree(fgd);
return ret;