From 8c6da3dfbc65354975680bf7d8e273dbdca5de87 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 6 Oct 2015 14:34:17 -0700 Subject: [PATCH] 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. --- bfd/ChangeLog | 6 ++++++ bfd/bfd.c | 2 ++ 2 files changed, 8 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index db6fe6b0715..b2a88551aa5 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2015-10-06 H.J. Lu + + * 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 PR ld/18914 diff --git a/bfd/bfd.c b/bfd/bfd.c index f68f665d9c7..9c4457ef3de 100644 --- a/bfd/bfd.c +++ b/bfd/bfd.c @@ -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); } -- 2.30.2