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.  */

Reply via email to