aboutsummaryrefslogtreecommitdiff
path: root/gold/tls.h
diff options
context:
space:
mode:
Diffstat (limited to 'gold/tls.h')
-rw-r--r--gold/tls.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/gold/tls.h b/gold/tls.h
index 7103d3f..ab20e74 100644
--- a/gold/tls.h
+++ b/gold/tls.h
@@ -50,10 +50,11 @@ inline void
check_range(const Relocate_info<size, big_endian>* relinfo,
size_t relnum,
typename elfcpp::Elf_types<size>::Elf_Addr rel_offset,
- off_t view_size, off_t off)
+ section_size_type view_size, int off)
{
- off_t offset = rel_offset + off;
- if (offset < 0 || offset > view_size)
+ typename elfcpp::Elf_types<size>::Elf_Addr offset = rel_offset + off;
+ // Elf_Addr is unsigned, so this also tests for signed offset < 0.
+ if (offset > view_size)
gold_error_at_location(relinfo, relnum, rel_offset,
_("TLS relocation out of range"));
}