diff options
author | Stephane Eranian <eranian@google.com> | 2014-02-19 20:32:55 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2014-02-24 14:24:38 -0500 |
commit | 0d3dc5e8b85a144aaeb5dc26f7f2113e4c4e7e81 (patch) | |
tree | 70d0b21e7c981a4a7b4c867048d633fa0dca4afa /tools/perf/util | |
parent | 9e8c06eaba76392644825a72d965ffa5f2a5784a (diff) |
perf symbols: Check return value of filename__read_debuglink()
When dso__read_binary_type_filename() called, it doesn't check the
return value of filename__read_debuglink() so that it'll try to open the
debuglink file even if it doesn't exist.
Also fix return value of the filename__read_debuglink() as it always
return -1 regardless of the result.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Cody P Schafer <cody@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1392859976-32760-3-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util')
-rw-r--r-- | tools/perf/util/dso.c | 4 | ||||
-rw-r--r-- | tools/perf/util/symbol-elf.c | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/tools/perf/util/dso.c b/tools/perf/util/dso.c index 4045d086d9d9..64453d63b971 100644 --- a/tools/perf/util/dso.c +++ b/tools/perf/util/dso.c | |||
@@ -45,8 +45,8 @@ int dso__read_binary_type_filename(const struct dso *dso, | |||
45 | debuglink--; | 45 | debuglink--; |
46 | if (*debuglink == '/') | 46 | if (*debuglink == '/') |
47 | debuglink++; | 47 | debuglink++; |
48 | filename__read_debuglink(dso->long_name, debuglink, | 48 | ret = filename__read_debuglink(dso->long_name, debuglink, |
49 | size - (debuglink - filename)); | 49 | size - (debuglink - filename)); |
50 | } | 50 | } |
51 | break; | 51 | break; |
52 | case DSO_BINARY_TYPE__BUILD_ID_CACHE: | 52 | case DSO_BINARY_TYPE__BUILD_ID_CACHE: |
diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c index 3e9f336740fa..8ac4a4fe2abd 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c | |||
@@ -506,6 +506,8 @@ int filename__read_debuglink(const char *filename, char *debuglink, | |||
506 | /* the start of this section is a zero-terminated string */ | 506 | /* the start of this section is a zero-terminated string */ |
507 | strncpy(debuglink, data->d_buf, size); | 507 | strncpy(debuglink, data->d_buf, size); |
508 | 508 | ||
509 | err = 0; | ||
510 | |||
509 | out_elf_end: | 511 | out_elf_end: |
510 | elf_end(elf); | 512 | elf_end(elf); |
511 | out_close: | 513 | out_close: |