From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S942336AbdEYPUo (ORCPT ); Thu, 25 May 2017 11:20:44 -0400 Received: from mx2.suse.de ([195.135.220.15]:39255 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S934050AbdEYPUn (ORCPT ); Thu, 25 May 2017 11:20:43 -0400 From: Luis Henriques To: Steven Rostedt , Ingo Molnar Cc: linux-kernel@vger.kernel.org, Luis Henriques Subject: [PATCH] ftrace: fix memory leak in ftrace_graph_release() Date: Thu, 25 May 2017 16:20:38 +0100 Message-Id: <20170525152038.7661-1-lhenriques@suse.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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: [] kmemleak_alloc+0x4e/0xb0 [] __kmalloc+0x12d/0x1a0 [] alloc_ftrace_hash+0x51/0x80 [] __ftrace_graph_open.isra.39.constprop.46+0xa3/0x100 [] ftrace_graph_open+0x68/0xa0 [] do_dentry_open.isra.1+0x1bd/0x2d0 [] vfs_open+0x47/0x60 [] path_openat+0x2a5/0x1020 [] do_filp_open+0x8a/0xf0 [] do_sys_open+0x12f/0x200 [] SyS_open+0x1e/0x20 [] entry_SYSCALL_64_fastpath+0x13/0x94 [] 0xffffffffffffffff Signed-off-by: Luis Henriques --- kernel/trace/ftrace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 74fdfe9ed3db..07a6ec55e3b4 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -5062,8 +5062,8 @@ ftrace_graph_release(struct inode *inode, struct file *file) free_ftrace_hash(old_hash); } - out: - kfree(fgd->new_hash); +out: + free_ftrace_hash(fgd->new_hash); kfree(fgd); return ret;