[Bug debuginfod/26599] eu-readelf -n works on /boot/vmlinuz-* but debuginfod-find doesn't

mark at klomp dot org sourceware-bugzilla@sourceware.org
Fri Sep 11 10:39:24 GMT 2020


https://sourceware.org/bugzilla/show_bug.cgi?id=26599

Mark Wielaard <mark at klomp dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mark at klomp dot org
             Status|NEW                         |ASSIGNED

--- Comment #1 from Mark Wielaard <mark at klomp dot org> ---
Only quickly tested patch, use dwelf_elf_begin:

/* Creates a read-only Elf handle from the given file handle.  The
   file may be compressed and/or contain a linux kernel image header,
   in which case it is eagerly decompressed in full and the Elf handle
   is created as if created with elf_memory ().  On decompression or
   file errors NULL is returned (and elf_errno will be set).  If there
   was no error, but the file is not an ELF file, then an ELF_K_NONE
   Elf handle is returned (just like with elf_begin).  The Elf handle
   should be closed with elf_end ().  The file handle will not be
   closed.  */

diff --git a/debuginfod/debuginfod-find.c b/debuginfod/debuginfod-find.c
index 83a43ce4..214256da 100644
--- a/debuginfod/debuginfod-find.c
+++ b/debuginfod/debuginfod-find.c
@@ -138,9 +138,10 @@ main(int argc, char** argv)
     }
   if (fd >= 0)
     {
-      elf = elf_begin (fd, ELF_C_READ_MMAP_PRIVATE, NULL);
+      elf = dwelf_elf_begin (fd);
       if (elf == NULL)
-        fprintf (stderr, "Cannot elf_begin %s: %s\n", build_id,
elf_errmsg(-1));
+        fprintf (stderr, "Cannot open as ELF file %s: %s\n", build_id,
+                elf_errmsg (-1));
     }
   if (elf != NULL)
     {

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Elfutils-devel mailing list