Index: reloc.cc =================================================================== RCS file: /cvs/src/src/gold/reloc.cc,v retrieving revision 1.42 diff -p -u -r1.42 reloc.cc --- reloc.cc 4 Mar 2009 06:46:27 -0000 1.42 +++ reloc.cc 24 Jun 2009 14:32:38 -0000 @@ -822,6 +822,10 @@ Sized_relobj::relocate 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::relocate continue; } - off_t sh_size = shdr.get_sh_size(); const unsigned char* prelocs = this->get_view(shdr.get_sh_offset(), sh_size, true, false);