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.
Cc: Fredereic Weisbecker <[email protected]>
Cc: Steven Rostedt <[email protected]>
Signed-off-by: Namhyung Kim <[email protected]>
---
tools/lib/traceevent/event-parse.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
index f978c59f67bf..b5b4d806ffa2 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.11.4
On Thu, 2012-08-23 at 16:37 +0900, Namhyung Kim wrote:
> 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.
>
> Cc: Fredereic Weisbecker <[email protected]>
> Cc: Steven Rostedt <[email protected]>
> Signed-off-by: Namhyung Kim <[email protected]>
> ---
> tools/lib/traceevent/event-parse.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
> index f978c59f67bf..b5b4d806ffa2 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];
>
Note, if you had kept my original way, you wouldn't have this bug ;-)
http://marc.info/?l=linux-kernel&m=133976417632111
-- Steve
> switch (errnum) {
Hi, Steve
On Thu, 23 Aug 2012 05:30:23 -0400, Steven Rostedt wrote:
> On Thu, 2012-08-23 at 16:37 +0900, Namhyung Kim wrote:
>> 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.
>>
>> Cc: Fredereic Weisbecker <[email protected]>
>> Cc: Steven Rostedt <[email protected]>
>> Signed-off-by: Namhyung Kim <[email protected]>
>> ---
>> tools/lib/traceevent/event-parse.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
>> index f978c59f67bf..b5b4d806ffa2 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];
>>
>
> Note, if you had kept my original way, you wouldn't have this bug ;-)
>
> http://marc.info/?l=linux-kernel&m=133976417632111
Oh, I missed the BEFORE_START part at that time, sorry. :)
Thanks,
Namhyung
Commit-ID: f63fe79fa0b1362e8ea1c1e4996cf70d14917b02
Gitweb: http://git.kernel.org/tip/f63fe79fa0b1362e8ea1c1e4996cf70d14917b02
Author: Namhyung Kim <[email protected]>
AuthorDate: Thu, 23 Aug 2012 16:37:00 +0900
Committer: Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Thu, 23 Aug 2012 11:29:20 -0300
tools lib traceevent: Fix off-by-one bug in pevent_strerror()
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) {