On Mon, Nov 16, 2009 at 08:39:04PM -0800, Roland McGrath wrote:
> I fixed the remaining crash.
Can you try the attached patch?
It fixes the segfault for me, but it also seems to produce
weird output in eu-readelf.
Kurt
diff --git a/libdwfl/relocate.c b/libdwfl/relocate.c
index a31fe15..2e37c64 100644
--- a/libdwfl/relocate.c
+++ b/libdwfl/relocate.c
@@ -302,6 +302,10 @@ relocate_section (Dwfl_Module *mod, Elf *relocated, const GElf_Ehdr *ehdr,
if (tname == NULL)
return DWFL_E_LIBELF;
+ if (unlikely (tshdr->sh_type == SHT_NOBITS) || unlikely (tshdr->sh_size == 0))
+ /* No contents to relocate. */
+ return DWFL_E_NOERROR;
+
if (debugscn && ! ebl_debugscn_p (mod->ebl, tname))
/* This relocation section is not for a debugging section.
Nothing to do here. */