asan: heap-buffer-overflow in bpf_elf_generic_reloc
authorAlan Modra <amodra@gmail.com>
Fri, 17 Dec 2021 03:02:36 +0000 (13:32 +1030)
committerAlan Modra <amodra@gmail.com>
Fri, 17 Dec 2021 05:31:34 +0000 (16:01 +1030)
commit9b54b561858b3fb265f57d2b4ddf35fba2603069
tree9ff7d9d54ad410b8599faeaa0547584121162d1c
parentb39de8897a9a3de9a1146c020be29e0742dad747
asan: heap-buffer-overflow in bpf_elf_generic_reloc

The bpf reloc howtos are a bit weird, using bitpos to specify an
offset from r_offset that is outside the size of the reloc as given by
howto.size.  That means bfd_get_reloc_size gives the wrong answer for
range checking, and thus bfd_reloc_offset_in_range can't be used.

* elf64-bpf.c (bpf_elf_generic_reloc): Handle bitpos offset reloc
range checking.
bfd/elf64-bpf.c