From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753296AbbE0Qqo (ORCPT ); Wed, 27 May 2015 12:46:44 -0400 Received: from terminus.zytor.com ([198.137.202.10]:38864 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751548AbbE0Qqi (ORCPT ); Wed, 27 May 2015 12:46:38 -0400 Date: Wed, 27 May 2015 09:46:14 -0700 From: tip-bot for Adrian Hunter Message-ID: Cc: tglx@linutronix.de, namhyung@gmail.com, adrian.hunter@intel.com, jolsa@redhat.com, hpa@zytor.com, linux-kernel@vger.kernel.org, acme@redhat.com, mingo@kernel.org Reply-To: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@kernel.org, acme@redhat.com, adrian.hunter@intel.com, jolsa@redhat.com, namhyung@gmail.com, tglx@linutronix.de In-Reply-To: <1432040746-1755-4-git-send-email-adrian.hunter@intel.com> References: <1432040746-1755-4-git-send-email-adrian.hunter@intel.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:perf/core] perf tools: Fix parse_events_error dereferences Git-Commit-ID: a6ced2be06c302402c52dedba97d169d22cce99c 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: a6ced2be06c302402c52dedba97d169d22cce99c Gitweb: http://git.kernel.org/tip/a6ced2be06c302402c52dedba97d169d22cce99c Author: Adrian Hunter AuthorDate: Tue, 19 May 2015 16:05:44 +0300 Committer: Arnaldo Carvalho de Melo CommitDate: Wed, 27 May 2015 12:21:43 -0300 perf tools: Fix parse_events_error dereferences Parse errors can be reported in struct parse_events_error but the pointer passed is optional and can be NULL. Ensure it is not NULL before dereferencing it. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1432040746-1755-4-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/util/parse-events.c | 2 ++ tools/perf/util/parse-events.y | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index 78032d8..2a4d1ec 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -1659,6 +1659,8 @@ void parse_events_evlist_error(struct parse_events_evlist *data, { struct parse_events_error *err = data->error; + if (!err) + return; err->idx = idx; err->str = strdup(str); WARN_ONCE(!err->str, "WARNING: failed to allocate error string"); diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y index 3d11e00..591905a 100644 --- a/tools/perf/util/parse-events.y +++ b/tools/perf/util/parse-events.y @@ -389,8 +389,10 @@ PE_NAME ':' PE_NAME if (parse_events_add_tracepoint(list, &data->idx, $1, $3)) { struct parse_events_error *error = data->error; - error->idx = @1.first_column; - error->str = strdup("unknown tracepoint"); + if (error) { + error->idx = @1.first_column; + error->str = strdup("unknown tracepoint"); + } return -1; } $$ = list;