]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
libebl: ebl_object_note print 32bit annobin address ranges correctly
authorMark Wielaard <mark@klomp.org>
Wed, 21 Feb 2024 20:59:14 +0000 (21:59 +0100)
committerMark Wielaard <mark@klomp.org>
Tue, 27 Feb 2024 14:56:36 +0000 (15:56 +0100)
Annobin address ranges were always printed as if they were 64bit wide
because addr_size was set to twice the size. This was done because the
note description size should contain two addresses. Fix this by setting
the address size to just one address and then check that descsz is
twice that.

* libebl/eblobjnote.c (ebl_object_note): Set addr_size to one
ELF_T_ADDR. Check descsz equals two times addr_size.

Signed-off-by: Mark Wielaard <mark@klomp.org>
libebl/eblobjnote.c

index 5a7c5c62e0f9d5202d0a95bb91ddc693082e03f2..1ba5d8b32354e7e550aded29753547b8e0f83d9e 100644 (file)
@@ -155,8 +155,8 @@ ebl_object_note (Ebl *ebl, uint32_t namesz, const char *name, uint32_t type,
              } addrs;
 
              size_t addr_size = gelf_fsize (ebl->elf, ELF_T_ADDR,
-                                            2, EV_CURRENT);
-             if (descsz != addr_size)
+                                            1, EV_CURRENT);
+             if (descsz != addr_size * 2)
                printf ("<unknown data>\n");
              else
                {