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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to