From: Jose E. Marchesi Date: Sat, 12 Jul 2025 08:58:06 +0000 (+0200) Subject: bfd: fix recognition of arch-specific augmentations X-Git-Tag: binutils-2_45~49 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3bf7cb6860c61184f7b95954dee13acabcbf425a;p=thirdparty%2Fbinutils-gdb.git bfd: fix recognition of arch-specific augmentations This patch fixes _bfd_elf_parse_eh_frame so it will not recognize machine/architecture specific augmentation characters in EH Frame CFIs. Regtested in x86_64-linux-gnu and aarch64-linux-gnu. bfd/ChangeLog: * elf-eh-frame.c (_bfd_elf_parse_eh_frame): Recognize augmentation 'B' only if targetting aarch64. --- diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c index 0250a8f8d11..aca16170a56 100644 --- a/bfd/elf-eh-frame.c +++ b/bfd/elf-eh-frame.c @@ -802,6 +802,8 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info, switch (*aug++) { case 'B': + if (abfd->arch_info->arch != bfd_arch_aarch64) + goto unrecognized; break; case 'L': REQUIRE (read_byte (&buf, end, &cie->lsda_encoding)); @@ -843,6 +845,7 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info, REQUIRE (skip_bytes (&buf, end, per_width)); } break; + unrecognized: default: /* Unrecognized augmentation. Better bail out. */ goto free_no_table;