From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965631AbbD1Mdh (ORCPT ); Tue, 28 Apr 2015 08:33:37 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40770 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965373AbbD1Mdg (ORCPT ); Tue, 28 Apr 2015 08:33:36 -0400 Date: Tue, 28 Apr 2015 14:32:30 +0200 From: Jiri Olsa To: Adrian Hunter Cc: Arnaldo Carvalho de Melo , Peter Zijlstra , linux-kernel@vger.kernel.org, David Ahern , Frederic Weisbecker , Namhyung Kim , Stephane Eranian Subject: Re: [PATCH V3 04/25] perf tools: Add AUX area tracing index Message-ID: <20150428123230.GB22258@krava.redhat.com> References: <1429903807-20559-1-git-send-email-adrian.hunter@intel.com> <1429903807-20559-5-git-send-email-adrian.hunter@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1429903807-20559-5-git-send-email-adrian.hunter@intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Apr 24, 2015 at 10:29:46PM +0300, Adrian Hunter wrote: SNIP > --- a/tools/perf/util/auxtrace.c > +++ b/tools/perf/util/auxtrace.c > @@ -344,6 +344,33 @@ out_err: > return err; > } > > +static int auxtrace_queues__add_indexed_event(struct auxtrace_queues *queues, > + struct perf_session *session, > + off_t file_offset, size_t sz) > +{ > + union perf_event *event; > + int err; > + char buf[PERF_SAMPLE_MAX_SIZE]; > + > + err = perf_session__peek_event(session, file_offset, buf, > + PERF_SAMPLE_MAX_SIZE, &event, NULL); > + if (err) > + return err; > + > + if (event->header.type == PERF_RECORD_AUXTRACE) { > + if (event->header.size != sizeof(struct auxtrace_event) || > + event->header.size != sz) { > + err = -EINVAL; getting lost in here as per auxtrace_mmap__read it looks like we store PERF_RECORD_AUXTRACE event with: ev.auxtrace.header.size = sizeof(ev.auxtrace); and it's followed with more data with size: ev.auxtrace.size = size + padding; so why the check for 'event->header.size != sz' ? jirka > + goto out; > + } > + file_offset += event->header.size; > + err = auxtrace_queues__add_event(queues, session, event, > + file_offset, NULL); > + } > +out: > + return err; > +} SNIP