diff options
Diffstat (limited to 'tools/objtool/check.c')
| -rw-r--r-- | tools/objtool/check.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/objtool/check.c b/tools/objtool/check.c index c2e46f901a53..49d2db7c7f5b 100644 --- a/tools/objtool/check.c +++ b/tools/objtool/check.c @@ -2293,6 +2293,11 @@ static int read_annotate(struct objtool_file *file, sec->sh.sh_entsize = 8; } + if (sec_num_entries(sec) != sec_num_entries(sec->rsec)) { + ERROR("bad .discard.annotate_insn section: missing relocs"); + return -1; + } + for_each_reloc(sec->rsec, reloc) { type = *(u32 *)(sec->data->d_buf + (reloc_idx(reloc) * sec->sh.sh_entsize) + 4); type = bswap_if_needed(file->elf, type); |