[PATCH 04/22] lib/traceevent: Fix %pM print format arg handling

From: Namhyung Kim
Date: Tue May 22 2012 - 22:39:05 EST


From: Steven Rostedt <srostedt@xxxxxxxxxx>

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>
Signed-off-by: Namhyung Kim <namhyung.kim@xxxxxxx>
---
tools/lib/traceevent/event-parse.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
index 4dc0313b4a50..9216aef78394 100644
--- a/tools/lib/traceevent/event-parse.c
+++ b/tools/lib/traceevent/event-parse.c
@@ -3761,6 +3761,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;
}

--
1.7.10.1

--
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/