[PATCH v1 5/7] aarch64: clean up subsection used to initialize the frozen attributes set
Richard Earnshaw (foss)
Richard.Earnshaw@arm.com
Fri Feb 6 11:50:41 GMT 2026
More information about the Binutils mailing list
Fri Feb 6 11:50:41 GMT 2026
- Previous message (by thread): [PATCH v1 5/7] aarch64: clean up subsection used to initialize the frozen attributes set
- Next message (by thread): [PATCH v1 6/7] aarch64: fix buffer overflow in aarch64-gen
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 03/02/2026 10:00, Matthieu Longo wrote: > On AArch64, some attributes are set globally when software protections > options such as BTI, PAC or GCS are enabled. These attributes are then > used as the frozen set during the attributes merge. > > In the current implementation of bfd_elfNN_aarch64_set_options, the > subsection is created before linker options are examined. If relevant > options are provided, the subsection is appended to the frozen set; > otherwise, it is left unused and leaked. This issue was detected by > LeakSanitizer (see the stack trace below). > > This patch fixes the memory leak by handling the case where no attributes > are recorded. An 'else' is added to free the empty subsection when it is > not added to the frozen set. > > ==ERROR: LeakSanitizer: detected memory leaks > Indirect leak of 23 byte(s) in 1 object(s) allocated from: > #2 0x56bec58a661c in xstrdup ../../libiberty/xstrdup.c:34 > #3 0x56bec559cc8d in bfd_elf64_aarch64_set_options ../../bfd/elfnn-aarch64.c:5046 > #4 0x56bec54d839a in aarch64_elf_create_output_section_statements <build-dir>/ld/eaarch64linux.c:358 > #5 0x56bec54c2b04 in ldemul_create_output_section_statements ../../ld/ldemul.c:130 > #6 0x56bec549fa50 in lang_process ../../ld/ldlang.c:8367 > #7 0x56bec54b2b2c in main ../../ld/ldmain.c:958 > --- > bfd/elfnn-aarch64.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c > index 08077fb74f8..d50f3bcbf48 100644 > --- a/bfd/elfnn-aarch64.c > +++ b/bfd/elfnn-aarch64.c > @@ -5125,6 +5125,8 @@ bfd_elfNN_aarch64_set_options (struct bfd *output_bfd, > if (attrs_subsection->size > 0) > LINKED_LIST_APPEND (obj_attr_subsection_v2_t) > (&elf_obj_attr_subsections (output_bfd), attrs_subsection); > + else > + _bfd_elf_obj_attr_subsection_v2_free (attrs_subsection); > > elf_aarch64_tdata (output_bfd)->gnu_property_aarch64_feature_1_and > = gnu_property_aarch64_feature_1_and; OK R.
- Previous message (by thread): [PATCH v1 5/7] aarch64: clean up subsection used to initialize the frozen attributes set
- Next message (by thread): [PATCH v1 6/7] aarch64: fix buffer overflow in aarch64-gen
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list