lkml.org 
[lkml]   [2012]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/3] perf tools: Fix strlen() bug in perf_event__synthesize_event_type()
    Date
    From: Stephane Eranian <eranian@google.com>

    The event_type record has a max length for the event name.

    It's called MAX_EVENT_NAME.

    The name may be truncated to fit the max length. But the header.size still
    reflects the original name length. If that length is > MAX_EVENT_NAME, then the
    header.size field is bogus. Fix this by using the length of the name after the
    potential truncation.

    Cc: David Ahern <dsahern@gmail.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20120120094912.GA4882@quad
    Signed-off-by: Stephane Eranian <eranian@google.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/util/header.c | 2 +-
    1 files changed, 1 insertions(+), 1 deletions(-)

    diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
    index 3e7e0b0..ecd7f4d 100644
    --- a/tools/perf/util/header.c
    +++ b/tools/perf/util/header.c
    @@ -2105,7 +2105,7 @@ int perf_event__synthesize_event_type(struct perf_tool *tool,
    strncpy(ev.event_type.event_type.name, name, MAX_EVENT_NAME - 1);

    ev.event_type.header.type = PERF_RECORD_HEADER_EVENT_TYPE;
    - size = strlen(name);
    + size = strlen(ev.event_type.event_type.name);
    size = ALIGN(size, sizeof(u64));
    ev.event_type.header.size = sizeof(ev.event_type) -
    (sizeof(ev.event_type.event_type.name) - size);
    --
    1.7.4.4


    \
     
     \ /
      Last update: 2012-01-31 02:23    [W:0.021 / U:2.584 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site