From: Alan Modra Date: Fri, 17 Dec 2021 02:32:55 +0000 (+1030) Subject: ubsan: bfd.c:2519:8: shift exponent 34 is too large X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b39de8897a9a3de9a1146c020be29e0742dad747;p=binutils-gdb.git ubsan: bfd.c:2519:8: shift exponent 34 is too large * bfd.c (bfd_update_compression_header): Avoid integer overflow. --- diff --git a/bfd/bfd.c b/bfd/bfd.c index 5c3797de305..2eff8150023 100644 --- a/bfd/bfd.c +++ b/bfd/bfd.c @@ -2504,7 +2504,7 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents, Elf32_External_Chdr *echdr = (Elf32_External_Chdr *) contents; bfd_put_32 (abfd, ELFCOMPRESS_ZLIB, &echdr->ch_type); bfd_put_32 (abfd, sec->size, &echdr->ch_size); - bfd_put_32 (abfd, 1 << sec->alignment_power, + bfd_put_32 (abfd, 1u << sec->alignment_power, &echdr->ch_addralign); /* bfd_log2 (alignof (Elf32_Chdr)) */ bfd_set_section_alignment (sec, 2); @@ -2516,7 +2516,7 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *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, + bfd_put_64 (abfd, UINT64_C (1) << sec->alignment_power, &echdr->ch_addralign); /* bfd_log2 (alignof (Elf64_Chdr)) */ bfd_set_section_alignment (sec, 3);