linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] perf daemon: Fix compile error with Asan
@ 2021-02-24  7:14 Namhyung Kim
  2021-02-24 11:06 ` Jiri Olsa
  0 siblings, 1 reply; 3+ messages in thread
From: Namhyung Kim @ 2021-02-24  7:14 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo, Jiri Olsa
  Cc: Ingo Molnar, Peter Zijlstra, Mark Rutland, Alexander Shishkin,
	LKML, Stephane Eranian, Ian Rogers

I'm seeing a build failure when build with address sanitizer.
It seems we could write to the name[100] if the var is longer.

  $ make EXTRA_CFLAGS=-fsanitize=address
  ...
    CC       builtin-daemon.o
  In function ‘get_session_name’,
    inlined from ‘session_config’ at builtin-daemon.c:164:6,
    inlined from ‘server_config’ at builtin-daemon.c:223:10:
  builtin-daemon.c:155:11: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
    155 |  *session = 0;
        |  ~~~~~~~~~^~~
  builtin-daemon.c: In function ‘server_config’:
  builtin-daemon.c:162:7: note: at offset 100 to object ‘name’ with size 100 declared here
    162 |  char name[100];
        |       ^~~~

Fixes: c0666261ff38 ("perf daemon: Add config file support")
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/builtin-daemon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/builtin-daemon.c b/tools/perf/builtin-daemon.c
index 617feaf020f6..8f9fc61691da 100644
--- a/tools/perf/builtin-daemon.c
+++ b/tools/perf/builtin-daemon.c
@@ -161,7 +161,7 @@ static int session_config(struct daemon *daemon, const char *var, const char *va
 	struct daemon_session *session;
 	char name[100];
 
-	if (get_session_name(var, name, sizeof(name)))
+	if (get_session_name(var, name, sizeof(name) - 1))
 		return -EINVAL;
 
 	var = strchr(var, '.');
-- 
2.30.0.617.g56c4b15f3c-goog


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

* Re: [PATCH] perf daemon: Fix compile error with Asan
  2021-02-24  7:14 [PATCH] perf daemon: Fix compile error with Asan Namhyung Kim
@ 2021-02-24 11:06 ` Jiri Olsa
  2021-03-03 15:54   ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 3+ messages in thread
From: Jiri Olsa @ 2021-02-24 11:06 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Arnaldo Carvalho de Melo, Ingo Molnar, Peter Zijlstra,
	Mark Rutland, Alexander Shishkin, LKML, Stephane Eranian,
	Ian Rogers

On Wed, Feb 24, 2021 at 04:14:38PM +0900, Namhyung Kim wrote:
> I'm seeing a build failure when build with address sanitizer.
> It seems we could write to the name[100] if the var is longer.
> 
>   $ make EXTRA_CFLAGS=-fsanitize=address
>   ...
>     CC       builtin-daemon.o
>   In function ‘get_session_name’,
>     inlined from ‘session_config’ at builtin-daemon.c:164:6,
>     inlined from ‘server_config’ at builtin-daemon.c:223:10:
>   builtin-daemon.c:155:11: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
>     155 |  *session = 0;
>         |  ~~~~~~~~~^~~
>   builtin-daemon.c: In function ‘server_config’:
>   builtin-daemon.c:162:7: note: at offset 100 to object ‘name’ with size 100 declared here
>     162 |  char name[100];
>         |       ^~~~
> 
> Fixes: c0666261ff38 ("perf daemon: Add config file support")
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>

Acked-by: Jiri Olsa <jolsa@redhat.com>

thanks,
jirka

> ---
>  tools/perf/builtin-daemon.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/perf/builtin-daemon.c b/tools/perf/builtin-daemon.c
> index 617feaf020f6..8f9fc61691da 100644
> --- a/tools/perf/builtin-daemon.c
> +++ b/tools/perf/builtin-daemon.c
> @@ -161,7 +161,7 @@ static int session_config(struct daemon *daemon, const char *var, const char *va
>  	struct daemon_session *session;
>  	char name[100];
>  
> -	if (get_session_name(var, name, sizeof(name)))
> +	if (get_session_name(var, name, sizeof(name) - 1))
>  		return -EINVAL;
>  
>  	var = strchr(var, '.');
> -- 
> 2.30.0.617.g56c4b15f3c-goog
> 


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

* Re: [PATCH] perf daemon: Fix compile error with Asan
  2021-02-24 11:06 ` Jiri Olsa
@ 2021-03-03 15:54   ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2021-03-03 15:54 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: Namhyung Kim, Ingo Molnar, Peter Zijlstra, Mark Rutland,
	Alexander Shishkin, LKML, Stephane Eranian, Ian Rogers

Em Wed, Feb 24, 2021 at 12:06:46PM +0100, Jiri Olsa escreveu:
> On Wed, Feb 24, 2021 at 04:14:38PM +0900, Namhyung Kim wrote:
> > I'm seeing a build failure when build with address sanitizer.
> > It seems we could write to the name[100] if the var is longer.
> > 
> >   $ make EXTRA_CFLAGS=-fsanitize=address
> >   ...
> >     CC       builtin-daemon.o
> >   In function ‘get_session_name’,
> >     inlined from ‘session_config’ at builtin-daemon.c:164:6,
> >     inlined from ‘server_config’ at builtin-daemon.c:223:10:
> >   builtin-daemon.c:155:11: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
> >     155 |  *session = 0;
> >         |  ~~~~~~~~~^~~
> >   builtin-daemon.c: In function ‘server_config’:
> >   builtin-daemon.c:162:7: note: at offset 100 to object ‘name’ with size 100 declared here
> >     162 |  char name[100];
> >         |       ^~~~
> > 
> > Fixes: c0666261ff38 ("perf daemon: Add config file support")
> > Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> 
> Acked-by: Jiri Olsa <jolsa@redhat.com>

Thanks, applied.

- Arnaldo

 
> thanks,
> jirka
> 
> > ---
> >  tools/perf/builtin-daemon.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/tools/perf/builtin-daemon.c b/tools/perf/builtin-daemon.c
> > index 617feaf020f6..8f9fc61691da 100644
> > --- a/tools/perf/builtin-daemon.c
> > +++ b/tools/perf/builtin-daemon.c
> > @@ -161,7 +161,7 @@ static int session_config(struct daemon *daemon, const char *var, const char *va
> >  	struct daemon_session *session;
> >  	char name[100];
> >  
> > -	if (get_session_name(var, name, sizeof(name)))
> > +	if (get_session_name(var, name, sizeof(name) - 1))
> >  		return -EINVAL;
> >  
> >  	var = strchr(var, '.');
> > -- 
> > 2.30.0.617.g56c4b15f3c-goog
> > 
> 

-- 

- Arnaldo

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

end of thread, other threads:[~2021-03-03 19:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-24  7:14 [PATCH] perf daemon: Fix compile error with Asan Namhyung Kim
2021-02-24 11:06 ` Jiri Olsa
2021-03-03 15:54   ` Arnaldo Carvalho de Melo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).