RE: [PATCH] Bug fix to ELF Loader which rejects valid ELFs

From: Burrow, Ryan - 0553 - MITLL
Date: Tue Aug 11 2020 - 12:39:35 EST


> -----Original Message-----
> From: Matthew Wilcox <willy@xxxxxxxxxxxxx>
> Sent: Tuesday, August 11, 2020 11:05 AM
> To: Burrow, Ryan - 0553 - MITLL <Ryan.Burrow@xxxxxxxxxx>
> Cc: linux-fsdevel@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] Bug fix to ELF Loader which rejects valid ELFs
>
> On Tue, Aug 11, 2020 at 02:44:08PM +0000, Burrow, Ryan - 0553 - MITLL
wrote:
> > /* Sanity check the number of program headers... */
> > - /* ...and their total size. */
> > - size = sizeof(struct elf_phdr) * elf_ex->e_phnum;
> > - if (size == 0 || size > 65536 || size > ELF_MIN_ALIGN)
> > + if (elf_ex->e_phnum == 0 || elf_ex->phnum > 65535)
>
> umm, did you compile-test this?
>

My apologies, I had made these edits in the context of other changes which I
didn't want to include in this patch - I replicated these changes
individually and (mistakenly) assumed I had done so correctly.

> assuming you meant e_phnum, it's a 16-bit quantity, so it can't be bigger
> than 65535.
>
> > goto out;
> >
> > + size = sizeof(struct elf_phdr) * elf_ex->e_phnum;
>
> use array_size() here?
>

That's a good catch - I had really just moved the previous allocation of
size down to after the check, but I'll use array_size instead. Just to
confirm the correct process, should I do an inline response with the updated
commit, or submit a new patch email?

Attachment: smime.p7s
Description: S/MIME cryptographic signature