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.
This commit is contained in:
Jose E. Marchesi
2025-07-12 10:58:06 +02:00
parent 11d33617e0
commit 3bf7cb6860

View File

@@ -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;