This is the mail archive of the mailing list for the elfutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]