This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH 4/9] Fix an integer overflow in relocation handling
- From: Palmer Dabbelt <palmer at dabbelt dot com>
- To: amodra at gmail dot com
- To: binutils at sourceware dot org
- Cc: Andrew Waterman <andrew at sifive dot com>
- Date: Sun, 18 Dec 2016 22:53:49 -0800
- Subject: [PATCH 4/9] Fix an integer overflow in relocation handling
- Authentication-results: sourceware.org; auth=none
- References: <20161219042711.25225-1-palmer@dabbelt.com> <20161219065354.5497-1-palmer@dabbelt.com>
From: Andrew Waterman <andrew@sifive.com>
bfd/ChangeLog
2016-12-14 Andrew Waterman <andrew@sifive.com>
* elfnn-riscv.c (bfd_riscv_get_max_alignment): Return bfd_vma
instead of unsigned int.
(_bfd_riscv_relax_lui): Change the type of max_alignment to
bfd_vma.
(_bfd_riscv_relax_align): Likewise.
---
bfd/elfnn-riscv.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index 5976118..461bce3 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -2759,7 +2759,7 @@ _bfd_riscv_relax_call (bfd *abfd, asection *sec, asection *sym_sec,
/* Traverse all output sections and return the max alignment. */
-static unsigned int
+static bfd_vma
_bfd_riscv_get_max_alignment (asection *sec)
{
unsigned int max_alignment_power = 0;
@@ -2771,7 +2771,7 @@ _bfd_riscv_get_max_alignment (asection *sec)
max_alignment_power = o->alignment_power;
}
- return 1 << max_alignment_power;
+ return (bfd_vma) 1 << max_alignment_power;
}
/* Relax non-PIC global variable references. */
@@ -2783,7 +2783,7 @@ _bfd_riscv_relax_lui (bfd *abfd,
struct bfd_link_info *link_info,
Elf_Internal_Rela *rel,
bfd_vma symval,
- unsigned int max_alignment,
+ bfd_vma max_alignment,
bfd_vma reserve_size,
bfd_boolean *again)
{
@@ -2900,7 +2900,7 @@ _bfd_riscv_relax_align (bfd *abfd, asection *sec,
struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
Elf_Internal_Rela *rel,
bfd_vma symval,
- unsigned int max_alignment ATTRIBUTE_UNUSED,
+ bfd_vma max_alignment ATTRIBUTE_UNUSED,
bfd_vma reserve_size ATTRIBUTE_UNUSED,
bfd_boolean *again ATTRIBUTE_UNUSED)
{
--
2.10.2