diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index 469c0264ed298d138698d93206419b87fbb3dd99..bb5d32f38af2f4fbde3eda4bf71820c25fb79302 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -1111,6 +1111,8 @@ static int dso__load_sym(struct dso *dso, struct map *map, const char *name, } opdsec = elf_section_by_name(elf, &ehdr, &opdshdr, ".opd", &opdidx); + if (opdshdr.sh_type != SHT_PROGBITS) + opdsec = NULL; if (opdsec) opddata = elf_rawdata(opdsec, NULL);