Re: [PATCH] x86: clear EXTRA_REGS for all executable formats

From: Brian Gerst
Date: Mon Apr 06 2015 - 19:00:54 EST


On Sat, Apr 4, 2015 at 2:55 PM, Denys Vlasenko <dvlasenk@xxxxxxxxxx> wrote:
> On failure, sys_execve does not clobber EXTRA_REGS, so we can just
> return to userpsace without saving/restoring them.
>
> On success, ELF_PLAT_INIT in sys_execve clears all these registers.
>
> On other executable formats:
> binfmt_flat.c has similar FLAT_PLAT_INIT, but x86 (and everyone else
> except sh) doesn't define it.
> binfmt_elf_fdpic.c has ELF_FDPIC_PLAT_INIT, but x86 (and most others)
> doesn't define it.
> There are no such hooks in binfmt_aout.c et al. We inherit
> EXTRA_REGS from the prior executable.

None of these are supported on x86-64. The first two are for embedded
MMU-less systems. a.out is only supported for a few old arches
(x86-32, alpha, m68k). ia32_aout.c does explicitly clear the extra
registers.

--
Brian Gerst
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/