summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2024-02-21 21:59:14 +0100
committerMark Wielaard <mark@klomp.org>2024-02-27 15:56:36 +0100
commit22085a89e31b6d4a9c528210a4c959a46a4b83f5 (patch)
treece08b45c9124862e616aa2c0df0a9331ad351e0a
parentbdccd2c6d3c981bbc9296676f9f8740b91549a52 (diff)
libebl: ebl_object_note print 32bit annobin address ranges correctly
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>
-rw-r--r--libebl/eblobjnote.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libebl/eblobjnote.c b/libebl/eblobjnote.c
index 5a7c5c62..1ba5d8b3 100644
--- a/libebl/eblobjnote.c
+++ b/libebl/eblobjnote.c
@@ -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
{