2012-08-23 15:12:16

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: [PATCH 12/12] tools lib traceevent: Fix off-by-one bug in pevent_strerror()

From: Namhyung Kim <[email protected]>

As pevent_errno is defined using PEVENT_ERRORS which uses _PE macro
magic, the first errno is bigger than __PEVENT_ERRNO_START by 1. So we
need to subtract the 1 also when calculating the index of the error
strings.

Signed-off-by: Namhyung Kim <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Steven Rostedt <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
tools/lib/traceevent/event-parse.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
index f978c59..b5b4d80 100644
--- a/tools/lib/traceevent/event-parse.c
+++ b/tools/lib/traceevent/event-parse.c
@@ -4822,7 +4822,7 @@ int pevent_strerror(struct pevent *pevent, enum pevent_errno errnum,
errnum >= __PEVENT_ERRNO__END)
return -1;

- idx = errnum - __PEVENT_ERRNO__START;
+ idx = errnum - __PEVENT_ERRNO__START - 1;
msg = pevent_error_str[idx];

switch (errnum) {
--
1.7.1