lkml.org 
[lkml]   [2015]   [Oct]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 12/36] x86/elf/64: Clear more registers in elf_common_init
    Date
    Before we start calling execve in contexts that honor the full
    pt_regs, we need to teach it to initialize all registers.

    Signed-off-by: Andy Lutomirski <luto@kernel.org>
    ---
    arch/x86/include/asm/elf.h | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h
    index 2ee05c4f5f37..1514753fd435 100644
    --- a/arch/x86/include/asm/elf.h
    +++ b/arch/x86/include/asm/elf.h
    @@ -171,11 +171,11 @@ do { \
    static inline void elf_common_init(struct thread_struct *t,
    struct pt_regs *regs, const u16 ds)
    {
    - /* Commented-out registers are cleared in stub_execve */
    - /*regs->ax = regs->bx =*/ regs->cx = regs->dx = 0;
    - regs->si = regs->di /*= regs->bp*/ = 0;
    + /* ax gets execve's return value. */
    + /*regs->ax = */ regs->bx = regs->cx = regs->dx = 0;
    + regs->si = regs->di = regs->bp = 0;
    regs->r8 = regs->r9 = regs->r10 = regs->r11 = 0;
    - /*regs->r12 = regs->r13 = regs->r14 = regs->r15 = 0;*/
    + regs->r12 = regs->r13 = regs->r14 = regs->r15 = 0;
    t->fs = t->gs = 0;
    t->fsindex = t->gsindex = 0;
    t->ds = t->es = ds;
    --
    2.4.3


    \
     
     \ /
      Last update: 2015-10-06 03:21    [W:2.331 / U:0.276 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site