This is the mail archive of the
mailing list for the elfutils project.
Re: [PATCH] libelf: More checking of valid sh_addralign values.
- From: Mark Wielaard <mjw at redhat dot com>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Mon, 18 May 2015 15:52:42 +0200
- Subject: Re: [PATCH] libelf: More checking of valid sh_addralign values.
On Tue, 2015-05-12 at 15:40 +0200, Mark Wielaard wrote:
> There were two issues with bogus sh_addralign values. First we would only
> check the individual Elf_Data d_align values were powerof2. But not the
> actual shdr addralign value. This would cause an issue if the shdr addralign
> was bigger than all of the individual d_align values. Then we could write
> out a bogus (! powerof2) shdr addralign value for the sections. Secondly
> when reading in the Elf_Data we would set the d_align value to the value
> of the shdr addralign value. But we would not check it was valid at all.
> In practice there are ELF files with incorrect sh_addralign values (they
> are a powerof2, but aren't aligned to the ELF image offset). We would try
> to fix that up in elf_update by adding extra padding. But this could bloat
> the ELF image a lot for large alignment values. So for too large alignments
> that are bigger than the offset in the ELF file clamp them to the offset
> value. This could lead us to reject to write out the data again when the
> offset was not a powerof2. But this will only happen for aligment values
> bigger than 64. Which are uncommon in practice.
Pushed to master.