From: Cody P Schafer Date: Fri, 10 Aug 2012 22:22:51 +0000 (-0700) Subject: perf symbols: Don't try to synthesize plt without dynstr X-Git-Tag: upstream/snapshot3+hdmi~6017^2~73^2~38 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=52f9ddba516214a59fdd8eb155b2583ab314dc31;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git perf symbols: Don't try to synthesize plt without dynstr If .dynsym exists but .dynstr is empty (NO_BITS or size==0), a segfault occurs. Avoid this by checking that .dynstr is not empty. Signed-off-by: Cody P Schafer Cc: David Hansen Cc: Ingo Molnar Cc: Matt Hellsley Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Sukadev Bhattiprolu Link: http://lkml.kernel.org/r/1344637382-22789-6-git-send-email-cody@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo --- diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c index e037609..a2e994e 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c @@ -232,6 +232,9 @@ int dso__synthesize_plt_symbols(struct dso *dso, char *name, struct map *map, if (symstrs == NULL) goto out_elf_end; + if (symstrs->d_size == 0) + goto out_elf_end; + nr_rel_entries = shdr_rel_plt.sh_size / shdr_rel_plt.sh_entsize; plt_offset = shdr_plt.sh_offset;