Re: [PATCH] tools lib traceevent: Fix off-by-one bug in pevent_strerror()

From: Namhyung Kim
Date: Thu Aug 23 2012 - 20:39:59 EST


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 <namhyung.kim@xxxxxxx>
>>
>> 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 <fweisbec@xxxxxxxxx>
>> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
>> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
>> ---
>> 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
--
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/