Re: [PATCH] tools lib traceevent: Fix kbuffer_read_at_offset()

From: Steven Rostedt
Date: Wed Oct 05 2016 - 09:28:09 EST


On Sat, 1 Oct 2016 19:17:00 +0900
Namhyung Kim <namhyung@xxxxxxxxxx> wrote:

> When it's called with an offset less than or equal to the first event,
> it'll return a garbage value since the data is not initialized.

Well, it can at most be equal to (unless offset is negative) because
kbuffer_load_subbuffer() sets kbuf->curr to zero.

But that said, it looks like offset == 0 is buggy.

Acked-by: Steven Rostedt <rostedt@xxxxxxxxxxx>


-- Steve

>
> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> ---
> tools/lib/traceevent/kbuffer-parse.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/tools/lib/traceevent/kbuffer-parse.c b/tools/lib/traceevent/kbuffer-parse.c
> index 3bcada3ae05a..65984f1c2974 100644
> --- a/tools/lib/traceevent/kbuffer-parse.c
> +++ b/tools/lib/traceevent/kbuffer-parse.c
> @@ -622,6 +622,7 @@ void *kbuffer_read_at_offset(struct kbuffer *kbuf, int offset,
>
> /* Reset the buffer */
> kbuffer_load_subbuffer(kbuf, kbuf->subbuffer);
> + data = kbuffer_read_event(kbuf, ts);
>
> while (kbuf->curr < offset) {
> data = kbuffer_next_event(kbuf, ts);