Use pclose() instead of fclose() on pipe stream
PATCH 1/1 Use pclose() instead of fclose() on pipe stream
cppcheck message:
[tools/perf/util/sort.c:277]: (error) Mismatching allocation and deallocation: fp
Also fix descriptor leak on error
--- tools/perf/util/sort.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
tools/perf/util/sort.c +2 -1
@@ -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); }
Signature · 1 line
1.7.11.7
Em Tue, Dec 25, 2012 at 05:02:04PM +0100, Thomas Jarosch escreveu:
Quoted 9 lines
cppcheck message:
[tools/perf/util/sort.c:277]: (error) Mismatching allocation and deallocation: fpAlso fix descriptor leak on error
Signed-off-by Thomas Jarosch <[email protected]>--- 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 errorsutil/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
Hi Arnaldo,
Quoted 8 lines · On Friday, 11. January 2013 01:16:03 you wrote:
Quoted 7 lines
Also fix descriptor leak on error
Signed-off-by Thomas Jarosch <[email protected]>---
tools/perf/util/sort.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
Quoted 7 lines
After applying this:
CC
/home/acme/git/build/perf/util/cpumap.o
cc1: warnings being treated as errorsutil/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
Em Wed, Jan 16, 2013 at 10:09:48AM +0100, Thomas Jarosch escreveu:
Quoted 5 lines
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.
Quoted 2 lines
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