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

From: Steven Rostedt
Date: Thu Aug 23 2012 - 05:30:20 EST


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

-- Steve

> switch (errnum) {


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