From f461bbd847f15657f3dd2f317c30c75a7520da1f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 14 Jun 2017 17:01:54 +0100 Subject: [PATCH] Fix address violation bug when disassembling a corrupt SH binary. PR binutils/21578 * elf32-sh.c (sh_elf_set_mach_from_flags): Fix check for invalid flag value. --- bfd/ChangeLog | 6 ++++++ bfd/elf32-sh.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 761514fe3c..b9133d22ba 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2017-06-14 Nick Clifton + + PR binutils/21578 + * elf32-sh.c (sh_elf_set_mach_from_flags): Fix check for invalid + flag value. + 2017-06-14 Nick Clifton PR binutils/21589 diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c index 3b1cc67ee2..3df13b5a1a 100644 --- a/bfd/elf32-sh.c +++ b/bfd/elf32-sh.c @@ -6344,7 +6344,7 @@ sh_elf_set_mach_from_flags (bfd *abfd) { flagword flags = elf_elfheader (abfd)->e_flags & EF_SH_MACH_MASK; - if (flags >= sizeof(sh_ef_bfd_table)) + if (flags >= ARRAY_SIZE (sh_ef_bfd_table)) return FALSE; if (sh_ef_bfd_table[flags] == 0) -- 2.34.1