Re: [PATCH 2/2] objtool: Update section header before relocations

From: Miroslav Benes
Date: Tue Jun 29 2021 - 03:55:26 EST


On Sat, 8 May 2021, Michael Forney wrote:

> The libelf implemention from elftoolchain has a safety check in
> gelf_update_rel[a] to check that the data corresponds to a section
> that has type SHT_REL[A] [0]. If the relocation is updated before
> the section header is updated with the proper type, this check
> fails.
>
> To fix this, update the section header first, before the relocations.
> Previously, the section size was calculated in elf_rebuild_reloc_section
> by counting the number of entries in the reloc_list. However, we
> now need the size during elf_write so instead keep a running total
> and add to it for every new relocation.
>
> [0] https://sourceforge.net/p/elftoolchain/mailman/elftoolchain-developers/thread/CAGw6cBtkZro-8wZMD2ULkwJ39J+tHtTtAWXufMjnd3cQ7XG54g@xxxxxxxxxxxxxx/
>
> Signed-off-by: Michael Forney <mforney@xxxxxxxxxxx>

Reviewed-by: Miroslav Benes <mbenes@xxxxxxx>

M