linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [perf PATCH] Use pclose() instead of fclose() on pipe stream
@ 2012-12-25 16:02 Thomas Jarosch
  2013-01-11  4:16 ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 4+ messages in thread
From: Thomas Jarosch @ 2012-12-25 16:02 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo; +Cc: linux-kernel

cppcheck message:
[tools/perf/util/sort.c:277]: (error) Mismatching allocation and deallocation: fp

Also fix descriptor leak on error

Signed-off-by: Thomas Jarosch <thomas.jarosch@intra2net.com>
---
 tools/perf/util/sort.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index cfd1c0f..586d2ea 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -274,7 +274,6 @@ static int hist_entry__srcline_snprintf(struct hist_entry *self, char *bf,
 
 	if (getline(&path, &line_len, fp) < 0 || !line_len)
 		goto out_ip;
-	fclose(fp);
 	self->srcline = strdup(path);
 	if (self->srcline == NULL)
 		goto out_ip;
@@ -284,8 +283,10 @@ static int hist_entry__srcline_snprintf(struct hist_entry *self, char *bf,
 		*nl = '\0';
 	path = self->srcline;
 out_path:
+	pclose(fp);
 	return repsep_snprintf(bf, size, "%s", path);
 out_ip:
+	pclose(fp);
 	return repsep_snprintf(bf, size, "%-#*llx", BITS_PER_LONG / 4, self->ip);
 }
 
-- 
1.7.11.7


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

* Re: [perf PATCH] Use pclose() instead of fclose() on pipe stream
  2012-12-25 16:02 [perf PATCH] Use pclose() instead of fclose() on pipe stream Thomas Jarosch
@ 2013-01-11  4:16 ` Arnaldo Carvalho de Melo
  2013-01-16  9:09   ` Thomas Jarosch
  0 siblings, 1 reply; 4+ messages in thread
From: Arnaldo Carvalho de Melo @ 2013-01-11  4:16 UTC (permalink / raw)
  To: Thomas Jarosch; +Cc: linux-kernel

Em Tue, Dec 25, 2012 at 05:02:04PM +0100, Thomas Jarosch escreveu:
> cppcheck message:
> [tools/perf/util/sort.c:277]: (error) Mismatching allocation and deallocation: fp
> 
> Also fix descriptor leak on error
> 
> Signed-off-by: Thomas Jarosch <thomas.jarosch@intra2net.com>
> ---
>  tools/perf/util/sort.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

After applying this:

    CC /home/acme/git/build/perf/util/cpumap.o
cc1: warnings being treated as errors
util/sort.c: In function ‘hist_entry__srcline_snprintf’:
util/sort.c:254: error: ‘fp’ may be used uninitialized in this function
make: *** [/home/acme/git/build/perf/util/sort.o] Error 1

- Arnaldo

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

* Re: Re: [perf PATCH] Use pclose() instead of fclose() on pipe stream
  2013-01-11  4:16 ` Arnaldo Carvalho de Melo
@ 2013-01-16  9:09   ` Thomas Jarosch
  2013-01-16 18:13     ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 4+ messages in thread
From: Thomas Jarosch @ 2013-01-16  9:09 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo; +Cc: linux-kernel

Hi Arnaldo,

On Friday, 11. January 2013 01:16:03 you wrote:
> > Also fix descriptor leak on error
> > 
> > Signed-off-by: Thomas Jarosch <thomas.jarosch@intra2net.com>
> > ---
> > 
> >  tools/perf/util/sort.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> After applying this:
> 
>     CC /home/acme/git/build/perf/util/cpumap.o
> cc1: warnings being treated as errors
> util/sort.c: In function ‘hist_entry__srcline_snprintf’:
> util/sort.c:254: error: ‘fp’ may be used uninitialized in this function
> make: *** [/home/acme/git/build/perf/util/sort.o] Error 1

Alright, looks like I've messed up the "early" error path.
The "FILE *fp" pointer needs to be initialized to NULL.

Should I send another patch or do you want to fix it on the fly?

What about the other patch
"[perf PATCH] Fix possible (unlikely) buffer overflow"

?

Cheers,
Thomas


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

* Re: Re: [perf PATCH] Use pclose() instead of fclose() on pipe stream
  2013-01-16  9:09   ` Thomas Jarosch
@ 2013-01-16 18:13     ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 4+ messages in thread
From: Arnaldo Carvalho de Melo @ 2013-01-16 18:13 UTC (permalink / raw)
  To: Thomas Jarosch; +Cc: linux-kernel

Em Wed, Jan 16, 2013 at 10:09:48AM +0100, Thomas Jarosch escreveu:
> 
> Alright, looks like I've messed up the "early" error path.
> The "FILE *fp" pointer needs to be initialized to NULL.
> 
> Should I send another patch or do you want to fix it on the fly?

Please send another patch taking this into account.
 
> What about the other patch
> "[perf PATCH] Fix possible (unlikely) buffer overflow"

Its in my perf/core branch at:

git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux

As soon as Ingo restarts processing pull requests I'll push it.

- Arnaldo

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

end of thread, other threads:[~2013-01-16 18:13 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-25 16:02 [perf PATCH] Use pclose() instead of fclose() on pipe stream Thomas Jarosch
2013-01-11  4:16 ` Arnaldo Carvalho de Melo
2013-01-16  9:09   ` Thomas Jarosch
2013-01-16 18:13     ` 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).