[tip:perf/core] tools lib traceevent: Fix %pM print format arg handling

From: tip-bot for Steven Rostedt
Date: Fri Jul 06 2012 - 07:11:04 EST


Commit-ID: aaf05c725bed1c7a8c940d9215662c78bea05dfd
Gitweb: http://git.kernel.org/tip/aaf05c725bed1c7a8c940d9215662c78bea05dfd
Author: Steven Rostedt <srostedt@xxxxxxxxxx>
AuthorDate: Mon, 9 Jan 2012 15:58:09 -0500
Committer: Namhyung Kim <namhyung@xxxxxxxxxx>
CommitDate: Wed, 4 Jul 2012 13:40:30 +0900

tools lib traceevent: Fix %pM print format arg handling

When %pM is used, the arg value must be a 6 byte character that will
be printed as a 6 byte MAC address. But the code does a break over the
main code which updates the current processing arg to point to the
next arg. If there are other print arguments after a %pM, they will be
off by one. The next arg will still be processing the %pM arg.

Reported-by: Johannes Berg <johannes.berg@xxxxxxxxx>
Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-q3g0n1espikynsdkpbi6ue6t@xxxxxxxxxxxxxx
Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
---
tools/lib/traceevent/event-parse.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
index 872dd35..da06c33 100644
--- a/tools/lib/traceevent/event-parse.c
+++ b/tools/lib/traceevent/event-parse.c
@@ -3858,6 +3858,7 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct event
} else if (*(ptr+1) == 'M' || *(ptr+1) == 'm') {
print_mac_arg(s, *(ptr+1), data, size, event, arg);
ptr++;
+ arg = arg->next;
break;
}

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