perf tools: Fix cache event name generation
authorJiri Olsa <jolsa@redhat.com>
Wed, 5 Sep 2012 17:51:33 +0000 (19:51 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 6 Sep 2012 18:01:08 +0000 (15:01 -0300)
If the event name is specified with all 3 components, the last one
overwrites the previous one during the name composing within the
parse_events_add_cache function.

Fixing this by properly adjusting the string index.

Reported-by: Joel Uckelman <joel@lightboxtechnologies.com>
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Joel Uckelman <joel@lightboxtechnologies.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
LPU-Reference: 20120905175133.GA18352@krava.brq.redhat.com
[ committer note: Remove the newline fix, done already in 42e1fb7 ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/parse-events.c

index 66d235e..a031ee1 100644 (file)
@@ -308,7 +308,7 @@ int parse_events_add_cache(struct list_head **list, int *idx,
        for (i = 0; (i < 2) && (op_result[i]); i++) {
                char *str = op_result[i];
 
-               snprintf(name + n, MAX_NAME_LEN - n, "-%s", str);
+               n += snprintf(name + n, MAX_NAME_LEN - n, "-%s", str);
 
                if (cache_op == -1) {
                        cache_op = parse_aliases(str, perf_evsel__hw_cache_op,