All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tools lib traceevent: Fix buffer overflow in arg_eval
@ 2019-02-28  1:55 Tony Jones
  2019-02-28  3:12 ` Steven Rostedt
  2019-03-09 19:47 ` [tip:perf/urgent] " tip-bot for Tony Jones
  0 siblings, 2 replies; 5+ messages in thread
From: Tony Jones @ 2019-02-28  1:55 UTC (permalink / raw)
  To: linux-kernel
  Cc: Tony Jones, Arnaldo Carvalho de Melo, linux-perf-users, Steven Rostedt

Fix buffer overflow observed when running perf test.

The overflow is when trying to evaluate "1ULL << (64 - 1)" which
is resulting in -9223372036854775808 which overflows the 20 character
buffer.

If is possible this bug has been reported before but I still don't
see any fix checked in:

See: https://www.spinics.net/lists/linux-perf-users/msg07714.html

Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: linux-perf-users@vger.kernel.org
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Tony Jones <tonyj@suse.de>
---
 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 abd4fa5d3088..87494c7c619d 100644
--- a/tools/lib/traceevent/event-parse.c
+++ b/tools/lib/traceevent/event-parse.c
@@ -2457,7 +2457,7 @@ static int arg_num_eval(struct tep_print_arg *arg, long long *val)
 static char *arg_eval (struct tep_print_arg *arg)
 {
 	long long val;
-	static char buf[20];
+	static char buf[24];
 
 	switch (arg->type) {
 	case TEP_PRINT_ATOM:
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] tools lib traceevent: Fix buffer overflow in arg_eval
  2019-02-28  1:55 [PATCH] tools lib traceevent: Fix buffer overflow in arg_eval Tony Jones
@ 2019-02-28  3:12 ` Steven Rostedt
  2019-02-28 19:01   ` Arnaldo Carvalho de Melo
  2019-03-09 19:47 ` [tip:perf/urgent] " tip-bot for Tony Jones
  1 sibling, 1 reply; 5+ messages in thread
From: Steven Rostedt @ 2019-02-28  3:12 UTC (permalink / raw)
  To: Tony Jones
  Cc: linux-kernel, Arnaldo Carvalho de Melo, linux-perf-users,
	Mathias Krause, linux-trace-devel, Tzvetomir Stoyanov,
	Michael Sartain

On Wed, 27 Feb 2019 17:55:32 -0800
Tony Jones <tonyj@suse.de> wrote:

> Fix buffer overflow observed when running perf test.
> 
> The overflow is when trying to evaluate "1ULL << (64 - 1)" which
> is resulting in -9223372036854775808 which overflows the 20 character
> buffer.
> 
> If is possible this bug has been reported before but I still don't
> see any fix checked in:
> 
> See: https://www.spinics.net/lists/linux-perf-users/msg07714.html
> 
> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> Cc: linux-perf-users@vger.kernel.org
> Cc: Steven Rostedt <rostedt@goodmis.org>
> Signed-off-by: Tony Jones <tonyj@suse.de>

Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

I have to say I've let this slide and it is not the first time a patch
went out with this fix. But this one has the correct fix because we
should use a buffer with a multiple of 4. Anyway, Tony I believe was
the first to report this anyway.

For reference we have:

I first heard about Tony's complaint on a post to linux-perf-users on Jan 18.

But then we had after that:

 Michael Sartain reported it on 1/24 (and fixed by Tzvetomir)
 https://lore.kernel.org/linux-trace-devel/20190125102014.19600-1-tstoyanov@vmware.com/
 
It was later fixed again by Mathias Krause
 https://lore.kernel.org/linux-trace-devel/20190223122404.21137-1-minipli@googlemail.com/

But since Tony was first to report it, and we discussed that it should
be 24 bytes, I would say this is the patch to take.

Again, sorry for not getting this acknowledged earlier and everyone doing
the same thing multiple times. :-/

Arnaldo, please take this patch. But also add:

Reported-by: Michael Sartain <mikesart@fastmail.com>
Reported-by: Mathias Krause <minipli@googlemail.com>

Thanks,

-- Steve


> ---
>  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 abd4fa5d3088..87494c7c619d
> 100644 --- a/tools/lib/traceevent/event-parse.c
> +++ b/tools/lib/traceevent/event-parse.c
> @@ -2457,7 +2457,7 @@ static int arg_num_eval(struct tep_print_arg
> *arg, long long *val) static char *arg_eval (struct tep_print_arg
> *arg) {
>  	long long val;
> -	static char buf[20];
> +	static char buf[24];
>  
>  	switch (arg->type) {
>  	case TEP_PRINT_ATOM:


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] tools lib traceevent: Fix buffer overflow in arg_eval
  2019-02-28  3:12 ` Steven Rostedt
@ 2019-02-28 19:01   ` Arnaldo Carvalho de Melo
  2019-02-28 19:07     ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-02-28 19:01 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: Tony Jones, linux-kernel, Arnaldo Carvalho de Melo,
	linux-perf-users, Mathias Krause, linux-trace-devel,
	Tzvetomir Stoyanov, Michael Sartain

Em Wed, Feb 27, 2019 at 10:12:50PM -0500, Steven Rostedt escreveu:
> On Wed, 27 Feb 2019 17:55:32 -0800
> Tony Jones <tonyj@suse.de> wrote:
> 
> > Fix buffer overflow observed when running perf test.
> > 
> > The overflow is when trying to evaluate "1ULL << (64 - 1)" which
> > is resulting in -9223372036854775808 which overflows the 20 character
> > buffer.
> > 
> > If is possible this bug has been reported before but I still don't
> > see any fix checked in:
> > 
> > See: https://www.spinics.net/lists/linux-perf-users/msg07714.html
> > 
> > Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> > Cc: linux-perf-users@vger.kernel.org
> > Cc: Steven Rostedt <rostedt@goodmis.org>
> > Signed-off-by: Tony Jones <tonyj@suse.de>
> 
> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> 
> I have to say I've let this slide and it is not the first time a patch
> went out with this fix. But this one has the correct fix because we
> should use a buffer with a multiple of 4. Anyway, Tony I believe was
> the first to report this anyway.
> 
> For reference we have:
> 
> I first heard about Tony's complaint on a post to linux-perf-users on Jan 18.
> 
> But then we had after that:
> 
>  Michael Sartain reported it on 1/24 (and fixed by Tzvetomir)
>  https://lore.kernel.org/linux-trace-devel/20190125102014.19600-1-tstoyanov@vmware.com/
>  
> It was later fixed again by Mathias Krause
>  https://lore.kernel.org/linux-trace-devel/20190223122404.21137-1-minipli@googlemail.com/
> 
> But since Tony was first to report it, and we discussed that it should
> be 24 bytes, I would say this is the patch to take.
> 
> Again, sorry for not getting this acknowledged earlier and everyone doing
> the same thing multiple times. :-/
> 
> Arnaldo, please take this patch. But also add:
> 
> Reported-by: Michael Sartain <mikesart@fastmail.com>
> Reported-by: Mathias Krause <minipli@googlemail.com>

Will do.

Thanks for the credit research,

- Arnaldo

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] tools lib traceevent: Fix buffer overflow in arg_eval
  2019-02-28 19:01   ` Arnaldo Carvalho de Melo
@ 2019-02-28 19:07     ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2019-02-28 19:07 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: Tony Jones, linux-kernel, Arnaldo Carvalho de Melo,
	linux-perf-users, Mathias Krause, linux-trace-devel,
	Tzvetomir Stoyanov, Michael Sartain

Em Thu, Feb 28, 2019 at 04:01:23PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Wed, Feb 27, 2019 at 10:12:50PM -0500, Steven Rostedt escreveu:
> > On Wed, 27 Feb 2019 17:55:32 -0800
> > Tony Jones <tonyj@suse.de> wrote:
> > 
> > > Fix buffer overflow observed when running perf test.
> > > 
> > > The overflow is when trying to evaluate "1ULL << (64 - 1)" which
> > > is resulting in -9223372036854775808 which overflows the 20 character
> > > buffer.
> > > 
> > > If is possible this bug has been reported before but I still don't
> > > see any fix checked in:
> > > 
> > > See: https://www.spinics.net/lists/linux-perf-users/msg07714.html
> > > 
> > > Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> > > Cc: linux-perf-users@vger.kernel.org
> > > Cc: Steven Rostedt <rostedt@goodmis.org>
> > > Signed-off-by: Tony Jones <tonyj@suse.de>
> > 
> > Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> > 
> > I have to say I've let this slide and it is not the first time a patch
> > went out with this fix. But this one has the correct fix because we
> > should use a buffer with a multiple of 4. Anyway, Tony I believe was
> > the first to report this anyway.
> > 
> > For reference we have:
> > 
> > I first heard about Tony's complaint on a post to linux-perf-users on Jan 18.
> > 
> > But then we had after that:
> > 
> >  Michael Sartain reported it on 1/24 (and fixed by Tzvetomir)
> >  https://lore.kernel.org/linux-trace-devel/20190125102014.19600-1-tstoyanov@vmware.com/
> >  
> > It was later fixed again by Mathias Krause
> >  https://lore.kernel.org/linux-trace-devel/20190223122404.21137-1-minipli@googlemail.com/
> > 
> > But since Tony was first to report it, and we discussed that it should
> > be 24 bytes, I would say this is the patch to take.
> > 
> > Again, sorry for not getting this acknowledged earlier and everyone doing
> > the same thing multiple times. :-/
> > 
> > Arnaldo, please take this patch. But also add:
> > 
> > Reported-by: Michael Sartain <mikesart@fastmail.com>
> > Reported-by: Mathias Krause <minipli@googlemail.com>
> 
> Will do.
> 
> Thanks for the credit research,

Some more research, an approximation, adding:

Cc: Frederic Weisbecker <fweisbec@gmail.com>
Fixes: f7d82350e597 ("tools/events: Add files to create libtraceevent.a")

That is the 'git blame' entry for when that line was added with sizeof
== 20

- Arnaldo

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [tip:perf/urgent] tools lib traceevent: Fix buffer overflow in arg_eval
  2019-02-28  1:55 [PATCH] tools lib traceevent: Fix buffer overflow in arg_eval Tony Jones
  2019-02-28  3:12 ` Steven Rostedt
@ 2019-03-09 19:47 ` tip-bot for Tony Jones
  1 sibling, 0 replies; 5+ messages in thread
From: tip-bot for Tony Jones @ 2019-03-09 19:47 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: rostedt, acme, tonyj, hpa, mikesart, fweisbec, minipli,
	linux-kernel, mingo, tglx

Commit-ID:  7c5b019e3a638a5a290b0ec020f6ca83d2ec2aaa
Gitweb:     https://git.kernel.org/tip/7c5b019e3a638a5a290b0ec020f6ca83d2ec2aaa
Author:     Tony Jones <tonyj@suse.de>
AuthorDate: Wed, 27 Feb 2019 17:55:32 -0800
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Thu, 28 Feb 2019 16:06:47 -0300

tools lib traceevent: Fix buffer overflow in arg_eval

Fix buffer overflow observed when running perf test.

The overflow is when trying to evaluate "1ULL << (64 - 1)" which is
resulting in -9223372036854775808 which overflows the 20 character
buffer.

If is possible this bug has been reported before but I still don't see
any fix checked in:

See: https://www.spinics.net/lists/linux-perf-users/msg07714.html

Reported-by: Michael Sartain <mikesart@fastmail.com>
Reported-by: Mathias Krause <minipli@googlemail.com>
Signed-off-by: Tony Jones <tonyj@suse.de>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Fixes: f7d82350e597 ("tools/events: Add files to create libtraceevent.a")
Link: http://lkml.kernel.org/r/20190228015532.8941-1-tonyj@suse.de
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 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 abd4fa5d3088..87494c7c619d 100644
--- a/tools/lib/traceevent/event-parse.c
+++ b/tools/lib/traceevent/event-parse.c
@@ -2457,7 +2457,7 @@ static int arg_num_eval(struct tep_print_arg *arg, long long *val)
 static char *arg_eval (struct tep_print_arg *arg)
 {
 	long long val;
-	static char buf[20];
+	static char buf[24];
 
 	switch (arg->type) {
 	case TEP_PRINT_ATOM:

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-03-09 19:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-28  1:55 [PATCH] tools lib traceevent: Fix buffer overflow in arg_eval Tony Jones
2019-02-28  3:12 ` Steven Rostedt
2019-02-28 19:01   ` Arnaldo Carvalho de Melo
2019-02-28 19:07     ` Arnaldo Carvalho de Melo
2019-03-09 19:47 ` [tip:perf/urgent] " tip-bot for Tony Jones

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.