mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2026-08-27 00:26:02 -04:00
Don't write uninitialised data in .note.gnu.property
Seen when running the binutils x86-64 pr23494 tests. _bfd_elf_convert_gnu_properties doesn't initialise its "contents" buffer, and elf_write_gnu_properties doesn't write to padding. Fix this by initialising the padding and then dispense with zeroing contents in _bfd_elf_link_setup_gnu_properties. * elf-properties.c (elf_write_gnu_properties): Init padding. (_bfd_elf_link_setup_gnu_properties): Don't init contents.
This commit is contained in:
parent
e3998113f9
commit
7376294773
1 changed files with 7 additions and 2 deletions
|
|
@ -670,7 +670,12 @@ elf_write_gnu_properties (struct bfd_link_info *info,
|
|||
size += datasz;
|
||||
|
||||
/* Align each property. */
|
||||
size = (size + (align_size - 1)) & ~ (align_size - 1);
|
||||
datasz = -size & (align_size - 1);
|
||||
if (datasz)
|
||||
{
|
||||
memset (contents + size, 0, datasz);
|
||||
size += datasz;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -933,7 +938,7 @@ _bfd_elf_link_setup_gnu_properties (struct bfd_link_info *info)
|
|||
|
||||
/* Update .note.gnu.property section now. */
|
||||
sec->size = size;
|
||||
contents = (bfd_byte *) bfd_zalloc (first_pbfd, size);
|
||||
contents = bfd_alloc (first_pbfd, size);
|
||||
|
||||
elf_write_gnu_properties (info, first_pbfd, contents, list, size,
|
||||
align_size);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue