Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753946AbZK0FuP (ORCPT ); Fri, 27 Nov 2009 00:50:15 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753710AbZK0FuL (ORCPT ); Fri, 27 Nov 2009 00:50:11 -0500 Received: from hera.kernel.org ([140.211.167.34]:57904 "EHLO hera.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753774AbZK0FuG (ORCPT ); Fri, 27 Nov 2009 00:50:06 -0500 Date: Fri, 27 Nov 2009 05:49:46 GMT From: tip-bot for Lai Jiangshan Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@redhat.com, fweisbec@gmail.com, rostedt@goodmis.org, tglx@linutronix.de, laijs@cn.fujitsu.com, mhiramat@redhat.com, mingo@elte.hu Reply-To: mingo@redhat.com, hpa@zytor.com, linux-kernel@vger.kernel.org, fweisbec@gmail.com, rostedt@goodmis.org, tglx@linutronix.de, laijs@cn.fujitsu.com, mhiramat@redhat.com, mingo@elte.hu In-Reply-To: <4B0CEB95.2060107@cn.fujitsu.com> References: <4B0CEB95.2060107@cn.fujitsu.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:perf/core] trace_kprobes: Fix memory leak Message-ID: Git-Commit-ID: abab9d37d2a826fcf588c5f30152dbe05c40111c X-Mailer: tip-git-log-daemon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1614 Lines: 46 Commit-ID: abab9d37d2a826fcf588c5f30152dbe05c40111c Gitweb: http://git.kernel.org/tip/abab9d37d2a826fcf588c5f30152dbe05c40111c Author: Lai Jiangshan AuthorDate: Wed, 25 Nov 2009 16:32:21 +0800 Committer: Ingo Molnar CommitDate: Fri, 27 Nov 2009 06:43:04 +0100 trace_kprobes: Fix memory leak tp->nr_args is not set before we "goto error", it causes memory leak for free_trace_probe() use tp->nr_args to free memory of args. Signed-off-by: Lai Jiangshan Acked-by: Masami Hiramatsu Cc: Steven Rostedt Cc: Frederic Weisbecker LKML-Reference: <4B0CEB95.2060107@cn.fujitsu.com> Signed-off-by: Ingo Molnar --- kernel/trace/trace_kprobe.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c index 79ce6a2..82e8583 100644 --- a/kernel/trace/trace_kprobe.c +++ b/kernel/trace/trace_kprobe.c @@ -704,10 +704,12 @@ static int create_trace_probe(int argc, char **argv) ret = parse_probe_arg(arg, &tp->args[i].fetch, is_return); if (ret) { pr_info("Parse error at argument%d. (%d)\n", i, ret); + kfree(tp->args[i].name); goto error; } + + tp->nr_args++; } - tp->nr_args = i; ret = register_trace_probe(tp); if (ret) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/