From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759815AbcBYIEu (ORCPT ); Thu, 25 Feb 2016 03:04:50 -0500 Received: from torg.zytor.com ([198.137.202.12]:58610 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754753AbcBYIEt (ORCPT ); Thu, 25 Feb 2016 03:04:49 -0500 Date: Thu, 25 Feb 2016 00:04:09 -0800 From: tip-bot for Peter Zijlstra Message-ID: Cc: acme@redhat.com, tglx@linutronix.de, alexander.shishkin@linux.intel.com, torvalds@linux-foundation.org, hpa@zytor.com, jolsa@redhat.com, linux-kernel@vger.kernel.org, peterz@infradead.org, mingo@kernel.org Reply-To: peterz@infradead.org, mingo@kernel.org, linux-kernel@vger.kernel.org, hpa@zytor.com, jolsa@redhat.com, torvalds@linux-foundation.org, alexander.shishkin@linux.intel.com, acme@redhat.com, tglx@linutronix.de In-Reply-To: <20160224174947.697350349@infradead.org> References: <20160224174947.697350349@infradead.org> To: linux-tip-commits@vger.kernel.org Subject: [tip:perf/urgent] perf: Do not double free Git-Commit-ID: 130056275ade730e7a79c110212c8815202773ee X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 Commit-ID: 130056275ade730e7a79c110212c8815202773ee Gitweb: http://git.kernel.org/tip/130056275ade730e7a79c110212c8815202773ee Author: Peter Zijlstra AuthorDate: Wed, 24 Feb 2016 18:45:41 +0100 Committer: Ingo Molnar CommitDate: Thu, 25 Feb 2016 08:42:32 +0100 perf: Do not double free In case of: err_file: fput(event_file), we'll end up calling perf_release() which in turn will free the event. Do not then free the event _again_. Tested-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dvyukov@google.com Cc: eranian@google.com Cc: oleg@redhat.com Cc: panand@redhat.com Cc: sasha.levin@oracle.com Cc: vince@deater.net Link: http://lkml.kernel.org/r/20160224174947.697350349@infradead.org Signed-off-by: Ingo Molnar --- kernel/events/core.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kernel/events/core.c b/kernel/events/core.c index d7b0316..211a5ce 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -8520,7 +8520,12 @@ err_context: perf_unpin_context(ctx); put_ctx(ctx); err_alloc: - free_event(event); + /* + * If event_file is set, the fput() above will have called ->release() + * and that will take care of freeing the event. + */ + if (!event_file) + free_event(event); err_cpus: put_online_cpus(); err_task: