[binutils-gdb] bfd: fix recognition of arch-specific augmentations

Jose E. Marchesi jemarch@sourceware.org
Sat Jul 12 09:37:39 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3bf7cb6860c61184f7b95954dee13acabcbf425a

commit 3bf7cb6860c61184f7b95954dee13acabcbf425a
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Date:   Sat Jul 12 10:58:06 2025 +0200

    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:
---
 bfd/elf-eh-frame.c | 3 +++
 1 file changed, 3 insertions(+)

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;


More information about the Binutils-cvs mailing list