Clear the ch_reserved field in 64-bit output

It is better to clear the ch_reserved field of Elf64_External_Chdr
in 64-bit output.

	* bfd.c (bfd_update_compression_header): Clear the ch_reserved
	field in 64-bit output.
	(bfd_convert_section_contents): Likewise.
This commit is contained in:
H.J. Lu 2015-10-06 14:34:17 -07:00
parent cbd641edf3
commit 8c6da3dfbc
2 changed files with 8 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2015-10-06 H.J. Lu <hongjiu.lu@intel.com>
* bfd.c (bfd_update_compression_header): Clear the ch_reserved
field in 64-bit output.
(bfd_convert_section_contents): Likewise.
2015-10-05 H.J. Lu <hongjiu.lu@intel.com>
PR ld/18914

View File

@ -2001,6 +2001,7 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents,
Elf64_External_Chdr *echdr
= (Elf64_External_Chdr *) contents;
bfd_put_32 (abfd, ELFCOMPRESS_ZLIB, &echdr->ch_type);
bfd_put_32 (abfd, 0, &echdr->ch_reserved);
bfd_put_64 (abfd, sec->size, &echdr->ch_size);
bfd_put_64 (abfd, 1 << sec->alignment_power,
&echdr->ch_addralign);
@ -2251,6 +2252,7 @@ bfd_convert_section_contents (bfd *ibfd, sec_ptr isec, bfd *obfd,
{
Elf64_External_Chdr *echdr = (Elf64_External_Chdr *) contents;
bfd_put_32 (obfd, ELFCOMPRESS_ZLIB, &echdr->ch_type);
bfd_put_32 (obfd, 0, &echdr->ch_reserved);
bfd_put_64 (obfd, chdr.ch_size, &echdr->ch_size);
bfd_put_64 (obfd, chdr.ch_addralign, &echdr->ch_addralign);
}