tools lib traceevent: Fix %pM print format arg handling
authorSteven Rostedt <srostedt@redhat.com>
Mon, 9 Jan 2012 20:58:09 +0000 (15:58 -0500)
committerNamhyung Kim <namhyung@kernel.org>
Wed, 4 Jul 2012 04:40:30 +0000 (13:40 +0900)
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@intel.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/n/tip-q3g0n1espikynsdkpbi6ue6t@git.kernel.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/lib/traceevent/event-parse.c

index 872dd35db05116d0ea55e29909427c7327a62303..da06c33dcf4136db2cd56b609e2383ea068a61f7 100644 (file)
@@ -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;
                                }