All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] perf data: Fix error return code in perf_data__create_dir()
@ 2021-04-15  8:34 Zhen Lei
  2021-04-15 11:38 ` Jiri Olsa
  0 siblings, 1 reply; 3+ messages in thread
From: Zhen Lei @ 2021-04-15  8:34 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	linux-kernel
  Cc: Zhen Lei

Although 'ret' has been initialized to -1, but it will be reassigned by
the "ret = open(...)" statement in the for loop. So that, the value of
'ret' is unknown when asprintf() failed.

Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
---
 tools/perf/util/data.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/data.c b/tools/perf/util/data.c
index f29af4fc3d09390..8fca4779ae6a8e9 100644
--- a/tools/perf/util/data.c
+++ b/tools/perf/util/data.c
@@ -35,7 +35,7 @@ void perf_data__close_dir(struct perf_data *data)
 int perf_data__create_dir(struct perf_data *data, int nr)
 {
 	struct perf_data_file *files = NULL;
-	int i, ret = -1;
+	int i, ret;
 
 	if (WARN_ON(!data->is_dir))
 		return -EINVAL;
@@ -51,7 +51,8 @@ int perf_data__create_dir(struct perf_data *data, int nr)
 	for (i = 0; i < nr; i++) {
 		struct perf_data_file *file = &files[i];
 
-		if (asprintf(&file->path, "%s/data.%d", data->path, i) < 0)
+		ret = asprintf(&file->path, "%s/data.%d", data->path, i);
+		if (ret < 0)
 			goto out_err;
 
 		ret = open(file->path, O_RDWR|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR);
-- 
2.26.0.106.g9fadedd



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

* Re: [PATCH 1/1] perf data: Fix error return code in perf_data__create_dir()
  2021-04-15  8:34 [PATCH 1/1] perf data: Fix error return code in perf_data__create_dir() Zhen Lei
@ 2021-04-15 11:38 ` Jiri Olsa
  2021-04-19 17:14   ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 3+ messages in thread
From: Jiri Olsa @ 2021-04-15 11:38 UTC (permalink / raw)
  To: Zhen Lei
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Namhyung Kim, linux-kernel

On Thu, Apr 15, 2021 at 04:34:16PM +0800, Zhen Lei wrote:
> Although 'ret' has been initialized to -1, but it will be reassigned by
> the "ret = open(...)" statement in the for loop. So that, the value of
> 'ret' is unknown when asprintf() failed.
> 
> Reported-by: Hulk Robot <hulkci@huawei.com>
> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>

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

thanks,
jirka

> ---
>  tools/perf/util/data.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/perf/util/data.c b/tools/perf/util/data.c
> index f29af4fc3d09390..8fca4779ae6a8e9 100644
> --- a/tools/perf/util/data.c
> +++ b/tools/perf/util/data.c
> @@ -35,7 +35,7 @@ void perf_data__close_dir(struct perf_data *data)
>  int perf_data__create_dir(struct perf_data *data, int nr)
>  {
>  	struct perf_data_file *files = NULL;
> -	int i, ret = -1;
> +	int i, ret;
>  
>  	if (WARN_ON(!data->is_dir))
>  		return -EINVAL;
> @@ -51,7 +51,8 @@ int perf_data__create_dir(struct perf_data *data, int nr)
>  	for (i = 0; i < nr; i++) {
>  		struct perf_data_file *file = &files[i];
>  
> -		if (asprintf(&file->path, "%s/data.%d", data->path, i) < 0)
> +		ret = asprintf(&file->path, "%s/data.%d", data->path, i);
> +		if (ret < 0)
>  			goto out_err;
>  
>  		ret = open(file->path, O_RDWR|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR);
> -- 
> 2.26.0.106.g9fadedd
> 
> 


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

* Re: [PATCH 1/1] perf data: Fix error return code in perf_data__create_dir()
  2021-04-15 11:38 ` Jiri Olsa
@ 2021-04-19 17:14   ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2021-04-19 17:14 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: Zhen Lei, Peter Zijlstra, Ingo Molnar, Mark Rutland,
	Alexander Shishkin, Namhyung Kim, linux-kernel

Em Thu, Apr 15, 2021 at 01:38:40PM +0200, Jiri Olsa escreveu:
> On Thu, Apr 15, 2021 at 04:34:16PM +0800, Zhen Lei wrote:
> > Although 'ret' has been initialized to -1, but it will be reassigned by
> > the "ret = open(...)" statement in the for loop. So that, the value of
> > 'ret' is unknown when asprintf() failed.
> > 
> > Reported-by: Hulk Robot <hulkci@huawei.com>
> > Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
> 
> Acked-by: Jiri Olsa <jolsa@redhat.com>

Thanks, applied.

- Arnaldo

 
> thanks,
> jirka
> 
> > ---
> >  tools/perf/util/data.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/tools/perf/util/data.c b/tools/perf/util/data.c
> > index f29af4fc3d09390..8fca4779ae6a8e9 100644
> > --- a/tools/perf/util/data.c
> > +++ b/tools/perf/util/data.c
> > @@ -35,7 +35,7 @@ void perf_data__close_dir(struct perf_data *data)
> >  int perf_data__create_dir(struct perf_data *data, int nr)
> >  {
> >  	struct perf_data_file *files = NULL;
> > -	int i, ret = -1;
> > +	int i, ret;
> >  
> >  	if (WARN_ON(!data->is_dir))
> >  		return -EINVAL;
> > @@ -51,7 +51,8 @@ int perf_data__create_dir(struct perf_data *data, int nr)
> >  	for (i = 0; i < nr; i++) {
> >  		struct perf_data_file *file = &files[i];
> >  
> > -		if (asprintf(&file->path, "%s/data.%d", data->path, i) < 0)
> > +		ret = asprintf(&file->path, "%s/data.%d", data->path, i);
> > +		if (ret < 0)
> >  			goto out_err;
> >  
> >  		ret = open(file->path, O_RDWR|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR);
> > -- 
> > 2.26.0.106.g9fadedd
> > 
> > 
> 

-- 

- Arnaldo

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

end of thread, other threads:[~2021-04-19 17:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-15  8:34 [PATCH 1/1] perf data: Fix error return code in perf_data__create_dir() Zhen Lei
2021-04-15 11:38 ` Jiri Olsa
2021-04-19 17:14   ` Arnaldo Carvalho de Melo

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.