lkml.org 
[lkml]   [2012]   [Sep]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/3] perf annotate: make a copy of filename for passing to basename
    Date
    basename may modify the string passed to it, so the string should not be
    marked const.

    Signed-off-by: David Ahern <dsahern@gmail.com>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: Irina Tirdea <irina.tirdea@gmail.com>
    ---
    tools/perf/util/annotate.c | 9 ++++++++-
    1 file changed, 8 insertions(+), 1 deletion(-)

    diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
    index 51ef69c..04eafd3 100644
    --- a/tools/perf/util/annotate.c
    +++ b/tools/perf/util/annotate.c
    @@ -984,7 +984,8 @@ int symbol__annotate_printf(struct symbol *sym, struct map *map, int evidx,
    int context)
    {
    struct dso *dso = map->dso;
    - const char *filename = dso->long_name, *d_filename;
    + char *filename;
    + const char *d_filename;
    struct annotation *notes = symbol__annotation(sym);
    struct disasm_line *pos, *queue = NULL;
    u64 start = map__rip_2objdump(map, sym->start);
    @@ -992,6 +993,10 @@ int symbol__annotate_printf(struct symbol *sym, struct map *map, int evidx,
    int more = 0;
    u64 len;

    + filename = strdup(dso->long_name);
    + if (!filename)
    + return -ENOMEM;
    +
    if (full_paths)
    d_filename = filename;
    else
    @@ -1042,6 +1047,8 @@ int symbol__annotate_printf(struct symbol *sym, struct map *map, int evidx,
    }
    }

    + free(filename);
    +
    return more;
    }

    --
    1.7.10.1


    \
     
     \ /
      Last update: 2012-09-08 17:41    [W:2.896 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site