17 Oct, 2007

1 commit

  • include/asm-powerpc/elf.h has 6 entries in ARCH_DLINFO. fs/binfmt_elf.c
    has 14 unconditional NEW_AUX_ENT entries and 2 conditional NEW_AUX_ENT
    entries. So in the worst case, saved_auxv does not get an AT_NULL entry at
    the end.

    The saved_auxv array must be terminated with an AT_NULL entry. Make the
    size of mm_struct->saved_auxv arch dependend, based on the number of
    ARCH_DLINFO entries.

    Signed-off-by: Olaf Hering
    Cc: Roland McGrath
    Cc: Jakub Jelinek
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: "Luck, Tony"
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Paul Mundt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Olaf Hering
     

14 Jan, 2006

1 commit

  • On PowerPC, we want to be able to provide an AT_PLATFORM aux table
    entry to userspace, so that glibc can choose optimized libraries for
    the processor we're running on. Unfortunately that would be the 21st
    aux table entry on powerpc, meaning that the aux table including the
    terminating null entry would overflow the mm->saved_auxv[] array,
    leading to userland programs segfaulting.

    This increases the size of the mm->saved_auxv array to be large enough
    to accommodate an AT_PLATFORM entry on powerpc.

    Signed-off-by: Paul Mackerras
    Signed-off-by: Linus Torvalds

    Paul Mackerras
     

08 Sep, 2005

1 commit

  • The size of auxiliary vector is fixed at 42 in linux/sched.h. But it isn't
    very obvious when looking at linux/elf.h. This patch adds AT_VECTOR_SIZE
    so that we can change it if necessary when a new vector is added.

    Because of include file ordering problems, doing this necessitated the
    extraction of the AT_* symbols into a standalone header file.

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    H. J. Lu