diff options
author | Maciej W. Rozycki <macro@mips.com> | 2018-04-04 02:00:48 +0100 |
---|---|---|
committer | Maciej W. Rozycki <macro@mips.com> | 2018-04-04 02:00:48 +0100 |
commit | f428698edfd845a21639f5145cba3772eb92abc2 (patch) | |
tree | 309571e3073a0293cdc96107d6f1a68143be912f /bfd/elf32-frv.c | |
parent | 7ed6f92aaffdcc0995b0247379fb8ea621854dce (diff) | |
download | gdb-f428698edfd845a21639f5145cba3772eb92abc2.zip gdb-f428698edfd845a21639f5145cba3772eb92abc2.tar.gz gdb-f428698edfd845a21639f5145cba3772eb92abc2.tar.bz2 |
PR binutils/22875: FRV/ELF: Prevent an out-of-bounds howto table access
Prevent an out-of-bounds `elf32_frv_howto_table' table access in
`frv_info_to_howto_rela' by using the size of the table rather than
R_FRV_max to determine the number of entries in the contiguous regular
FRV relocation range defined and described in the table.
bfd/
* elf32-frv.c (frv_info_to_howto_rela): Correct the range check
for `elf32_frv_howto_table' table access.
Diffstat (limited to 'bfd/elf32-frv.c')
-rw-r--r-- | bfd/elf32-frv.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c index 7831aff..fc0bdcd 100644 --- a/bfd/elf32-frv.c +++ b/bfd/elf32-frv.c @@ -25,6 +25,7 @@ #include "elf/frv.h" #include "dwarf2.h" #include "hashtab.h" +#include "libiberty.h" /* Forward declarations. */ @@ -2551,7 +2552,7 @@ frv_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, break; default: - if (r_type >= (unsigned int) R_FRV_max) + if (r_type >= ARRAY_SIZE (elf32_frv_howto_table)) { /* xgettext:c-format */ _bfd_error_handler (_("%pB: unsupported relocation type %#x"), |