Johnny Eriksson bygg at cafax.se wrote on
Fri Jan 12 10:59:10 UTC 2018 :

> When parsing a 64-bit big-endian elf file (on a 64-bit X86-64 system),
> the sh_flags entry in the section header is mis-parsed since the routine
> used only reads a 32-bit value.
> 
> *** elfdump.c   Fri Jan 12 10:43:35 2018
> --- elfdump.c.org       Fri Jan 12 10:42:11 2018
> ***************
> *** 798,804 ****
>               v = (char *)sh + i * shentsize;
>               name = elf_get_word(e, v, SH_NAME);
>               type = elf_get_word(e, v, SH_TYPE);
> !               flags = elf_get_size(e, v, SH_FLAGS);
>               addr = elf_get_addr(e, v, SH_ADDR);
>               offset = elf_get_off(e, v, SH_OFFSET);
>               size = elf_get_size(e, v, SH_SIZE);
> --- 798,804 ----
>               v = (char *)sh + i * shentsize;
>               name = elf_get_word(e, v, SH_NAME);
>               type = elf_get_word(e, v, SH_TYPE);
> !               flags = elf_get_word(e, v, SH_FLAGS);
>               addr = elf_get_addr(e, v, SH_ADDR);
>               offset = elf_get_off(e, v, SH_OFFSET);
>               size = elf_get_size(e, v, SH_SIZE);
> 
> Possibly the (new) call to elf_get_size() should be changed to something
> a little bit more informative.
> 
> --Johnny

===
Mark Millard
markmi at dsl-only.net

_______________________________________________
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"

Reply via email to