On Mon, 13 Feb 2017 13:26:22 -0300
Arnaldo Carvalho de Melo <[email protected]> wrote:


> > diff --git a/tools/lib/traceevent/kbuffer-parse.c 
> > b/tools/lib/traceevent/kbuffer-parse.c
> > index 65984f1c2974..2009cb7d9675 100644
> > --- a/tools/lib/traceevent/kbuffer-parse.c
> > +++ b/tools/lib/traceevent/kbuffer-parse.c
> > @@ -315,6 +315,7 @@ static unsigned int old_update_pointers(struct kbuffer 
> > *kbuf)
> >             extend += delta;
> >             delta = extend;
> >             ptr += 4;
> > +           lenght = 0;  
> 
> ouch, 'length' :-)
> 
> clang provides a really nice error message:
> 
> kbuffer-parse.c:318:3: error: use of undeclared identifier 'lenght'; did you 
> mean 'length'?
>                 lenght = 0;
>                 ^~~~~~
>                 length
> kbuffer-parse.c:297:15: note: 'length' declared here
>         unsigned int length;
>                      ^
> 1 error generated.
> 
> I only had to test compile it :-)
> 
> >             break;
> >  
> >     case OLD_RINGBUF_TYPE_TIME_STAMP:
> >   

OK, I pulled the patch into git, and made it official ;-)
I also fixed the "lenght" in the change log too.

Could you use this instead.

-- Steve


>From 4f060a0577156acfdc0524a634f4afcc1657c929 Mon Sep 17 00:00:00 2001
From: "Steven Rostedt (VMware)" <[email protected]>
Date: Mon, 13 Feb 2017 12:11:44 -0500
Subject: [PATCH] tools lib traceevent: Initialize lenght on
 OLD_RING_BUFFER_TYPE_TIME_STAMP

A undefined value was being used for the OLD_RING_BUFFER_TYPE_TIME_STAMP
case entry, as the 'length' variable was not being initialized, fix it.

Caught by the reporter when building tools/perf/ using clang, which emmitted
this warning:

  kbuffer-parse.c:312:7: warning: variable 'length' is used uninitialized 
whenever switch case is taken [-Wsometimes-uninitialized]
          case OLD_RINGBUF_TYPE_TIME_EXTEND:
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
  kbuffer-parse.c:339:29: note: uninitialized use occurs here
          kbuf->next = kbuf->index + length;
                                   ^~~~~~
  kbuffer-parse.c:297:21: note: initialize the variable 'length' to silence 
this warning
          unsigned int length;
                             ^
                              = 0

Reported-by: Arnaldo Carvalho de Melo <[email protected]>
Cc: Adrian Hunter <[email protected]>
Cc: David Ahern <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Wang Nan <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Steven Rostedt (VMware) <[email protected]>
---
 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 65984f1..c94e364 100644
--- a/tools/lib/traceevent/kbuffer-parse.c
+++ b/tools/lib/traceevent/kbuffer-parse.c
@@ -315,6 +315,7 @@ static unsigned int old_update_pointers(struct kbuffer 
*kbuf)
                extend += delta;
                delta = extend;
                ptr += 4;
+               length = 0;
                break;
 
        case OLD_RINGBUF_TYPE_TIME_STAMP:
-- 
2.9.3

Reply via email to