tools/lib/traceevent: Fix processing of dereferenced args in bprintk events
diff mbox series

Message ID 20181210134522.3f71e2ca@gandalf.local.home
State Queued
Commit f024cf085c423bac7512479f45c34ee9a24af7ce
Headers show
Series
  • tools/lib/traceevent: Fix processing of dereferenced args in bprintk events
Related show

Commit Message

Steven Rostedt Dec. 10, 2018, 6:45 p.m. UTC
From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

In the case that a bprintk event has a dereferenced pointer that is stored
as a string, and there's more values to process (more args), the arg was not
updated to point to the next arg after processing the dereferenced pointer,
and it screwed up what was to be displayed.

Cc: stable@vger.kernel.org
Fixes: 7db96bb49629 ("tools lib traceevent: Handle new pointer processing of bprint strings")
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 tools/lib/traceevent/event-parse.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Arnaldo Carvalho de Melo Dec. 10, 2018, 6:48 p.m. UTC | #1
Em Mon, Dec 10, 2018 at 01:45:22PM -0500, Steven Rostedt escreveu:
> From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
> 
> In the case that a bprintk event has a dereferenced pointer that is stored
> as a string, and there's more values to process (more args), the arg was not
> updated to point to the next arg after processing the dereferenced pointer,
> and it screwed up what was to be displayed.

Thanks, applied.
 
> Cc: stable@vger.kernel.org
> Fixes: 7db96bb49629 ("tools lib traceevent: Handle new pointer processing of bprint strings")

> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> ---
>  tools/lib/traceevent/event-parse.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
> index 3692f29fee46..70144b98141c 100644
> --- a/tools/lib/traceevent/event-parse.c
> +++ b/tools/lib/traceevent/event-parse.c
> @@ -4970,6 +4970,7 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct tep_e
>  
>  				if (arg->type == TEP_PRINT_BSTRING) {
>  					trace_seq_puts(s, arg->string.string);
> +					arg = arg->next;
>  					break;
>  				}
>  
> -- 
> 2.19.1
Steven Rostedt Dec. 10, 2018, 9:26 p.m. UTC | #2
On Mon, 10 Dec 2018 15:48:07 -0300
Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Em Mon, Dec 10, 2018 at 01:45:22PM -0500, Steven Rostedt escreveu:
> > From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
> > 
> > In the case that a bprintk event has a dereferenced pointer that is stored
> > as a string, and there's more values to process (more args), the arg was not
> > updated to point to the next arg after processing the dereferenced pointer,
> > and it screwed up what was to be displayed.  
> 
> Thanks, applied.
>  
> > Cc: stable@vger.kernel.org
> > Fixes: 7db96bb49629 ("tools lib traceevent: Handle new pointer processing of bprint strings")  

Arnaldo,

It seems that I cut and pasted the sha1 of the "fixes" part wrong. Can
you add a "3". That is, the above should have been: 37db96bb49629

Thanks,

-- Steve

> 
> > Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> > ---
> >  tools/lib/traceevent/event-parse.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
> > index 3692f29fee46..70144b98141c 100644
> > --- a/tools/lib/traceevent/event-parse.c
> > +++ b/tools/lib/traceevent/event-parse.c
> > @@ -4970,6 +4970,7 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct tep_e
> >  
> >  				if (arg->type == TEP_PRINT_BSTRING) {
> >  					trace_seq_puts(s, arg->string.string);
> > +					arg = arg->next;
> >  					break;
> >  				}
> >  
> > -- 
> > 2.19.1  
>
Arnaldo Carvalho de Melo Dec. 11, 2018, 12:29 p.m. UTC | #3
Em Mon, Dec 10, 2018 at 04:26:21PM -0500, Steven Rostedt escreveu:
> On Mon, 10 Dec 2018 15:48:07 -0300
> Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> 
> > Em Mon, Dec 10, 2018 at 01:45:22PM -0500, Steven Rostedt escreveu:
> > > From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
> > > 
> > > In the case that a bprintk event has a dereferenced pointer that is stored
> > > as a string, and there's more values to process (more args), the arg was not
> > > updated to point to the next arg after processing the dereferenced pointer,
> > > and it screwed up what was to be displayed.  
> > 
> > Thanks, applied.
> >  
> > > Cc: stable@vger.kernel.org
> > > Fixes: 7db96bb49629 ("tools lib traceevent: Handle new pointer processing of bprint strings")  
> 
> Arnaldo,
> 
> It seems that I cut and pasted the sha1 of the "fixes" part wrong. Can
> you add a "3". That is, the above should have been: 37db96bb49629

Done, git rebase -i + reword -> push -f'ed :-)

https://git.kernel.org/acme/c/1e862fa6b4e9

- Arnaldo
 
> Thanks,
> 
> -- Steve
> 
> > 
> > > Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> > > ---
> > >  tools/lib/traceevent/event-parse.c | 1 +
> > >  1 file changed, 1 insertion(+)
> > > 
> > > diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
> > > index 3692f29fee46..70144b98141c 100644
> > > --- a/tools/lib/traceevent/event-parse.c
> > > +++ b/tools/lib/traceevent/event-parse.c
> > > @@ -4970,6 +4970,7 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct tep_e
> > >  
> > >  				if (arg->type == TEP_PRINT_BSTRING) {
> > >  					trace_seq_puts(s, arg->string.string);
> > > +					arg = arg->next;
> > >  					break;
> > >  				}
> > >  
> > > -- 
> > > 2.19.1  
> >

Patch
diff mbox series

diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
index 3692f29fee46..70144b98141c 100644
--- a/tools/lib/traceevent/event-parse.c
+++ b/tools/lib/traceevent/event-parse.c
@@ -4970,6 +4970,7 @@  static void pretty_print(struct trace_seq *s, void *data, int size, struct tep_e
 
 				if (arg->type == TEP_PRINT_BSTRING) {
 					trace_seq_puts(s, arg->string.string);
+					arg = arg->next;
 					break;
 				}