diff options
| -rw-r--r-- | arch/um/os-Linux/elf_aux.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/um/os-Linux/elf_aux.c b/arch/um/os-Linux/elf_aux.c index 5423b1ca17c4..9416e1c29926 100644 --- a/arch/um/os-Linux/elf_aux.c +++ b/arch/um/os-Linux/elf_aux.c | |||
| @@ -9,9 +9,10 @@ | |||
| 9 | */ | 9 | */ |
| 10 | #include <elf.h> | 10 | #include <elf.h> |
| 11 | #include <stddef.h> | 11 | #include <stddef.h> |
| 12 | #include <asm/elf.h> | ||
| 12 | #include "init.h" | 13 | #include "init.h" |
| 13 | #include "elf_user.h" | 14 | #include "elf_user.h" |
| 14 | #include <asm/elf.h> | 15 | #include "mem_user.h" |
| 15 | 16 | ||
| 16 | #if ELF_CLASS == ELFCLASS32 | 17 | #if ELF_CLASS == ELFCLASS32 |
| 17 | typedef Elf32_auxv_t elf_auxv_t; | 18 | typedef Elf32_auxv_t elf_auxv_t; |
| @@ -41,6 +42,9 @@ __init void scan_elf_aux( char **envp) | |||
| 41 | break; | 42 | break; |
| 42 | case AT_SYSINFO_EHDR: | 43 | case AT_SYSINFO_EHDR: |
| 43 | vsyscall_ehdr = auxv->a_un.a_val; | 44 | vsyscall_ehdr = auxv->a_un.a_val; |
| 45 | /* See if the page is under TASK_SIZE */ | ||
| 46 | if (vsyscall_ehdr < (unsigned long) envp) | ||
| 47 | vsyscall_ehdr = 0; | ||
| 44 | break; | 48 | break; |
| 45 | case AT_HWCAP: | 49 | case AT_HWCAP: |
| 46 | elf_aux_hwcap = auxv->a_un.a_val; | 50 | elf_aux_hwcap = auxv->a_un.a_val; |
