aboutsummaryrefslogtreecommitdiff
path: root/gold/reloc.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gold/reloc.cc')
-rw-r--r--gold/reloc.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/gold/reloc.cc b/gold/reloc.cc
index b6394a5..1985867 100644
--- a/gold/reloc.cc
+++ b/gold/reloc.cc
@@ -822,6 +822,10 @@ Sized_relobj<size, big_endian>::relocate_sections(
if (sh_type != elfcpp::SHT_REL && sh_type != elfcpp::SHT_RELA)
continue;
+ off_t sh_size = shdr.get_sh_size();
+ if (sh_size == 0)
+ continue;
+
unsigned int index = this->adjust_shndx(shdr.get_sh_info());
if (index >= this->shnum())
{
@@ -851,7 +855,6 @@ Sized_relobj<size, big_endian>::relocate_sections(
continue;
}
- off_t sh_size = shdr.get_sh_size();
const unsigned char* prelocs = this->get_view(shdr.get_sh_offset(),
sh_size, true, false);