Re: [PATCH] x86/tools/relocs: fix big section header tables

From: Artem Savkov
Date: Thu Nov 29 2018 - 10:22:04 EST


On Thu, Nov 29, 2018 at 08:23:12AM -0600, Josh Poimboeuf wrote:
> On Thu, Nov 29, 2018 at 02:51:33PM +0100, Artem Savkov wrote:
> > In case when the number of entries in the section header table is larger
> > then or equal to SHN_LORESERVE the size of the table is held in the sh_size
> > member of the initial entry in section header table instead of e_shnum.
> > Same with the string table index which is located in sh_link instead of
> > e_shstrndx.
> >
> > This case is easily reproducible with KCFLAGS="-ffunction-sections",
> > bzImage build fails with "String table index out of bounds" error.
> >
> > Signed-off-by: Artem Savkov <asavkov@xxxxxxxxxx>
> > ---
> > arch/x86/tools/relocs.c | 58 +++++++++++++++++++++++++++++------------
> > 1 file changed, 41 insertions(+), 17 deletions(-)
> >
> > diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
> > index b629f6992d9f..5275ea0a0d13 100644
> > --- a/arch/x86/tools/relocs.c
> > +++ b/arch/x86/tools/relocs.c
> > @@ -11,7 +11,9 @@
> > #define Elf_Shdr ElfW(Shdr)
> > #define Elf_Sym ElfW(Sym)
> >
> > -static Elf_Ehdr ehdr;
> > +static Elf_Ehdr ehdr;
>
> I think there's a tab missing here, it doesn't line up with the other
> variables.

This seems to be a vim bug. It aligns perfectly in
cat/less/lore.kernel.org which all seem to use tabstop=8 by default, but
it does not align in vim, but it does align with tabstop=7 in vim.


--
Artem