|
|
@@ -165,12 +165,14 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
|
|
|
|
|
|
down_write(&mm->mmap_sem);
|
|
|
|
|
|
- addr = get_unmapped_area(NULL, 0, PAGE_SIZE, 0, 0);
|
|
|
+ addr = get_unmapped_area(NULL, 0, vdso32_size + VDSO_OFFSET(VDSO_PREV_PAGES), 0, 0);
|
|
|
if (IS_ERR_VALUE(addr)) {
|
|
|
ret = addr;
|
|
|
goto up_fail;
|
|
|
}
|
|
|
|
|
|
+ addr += VDSO_OFFSET(VDSO_PREV_PAGES);
|
|
|
+
|
|
|
current->mm->context.vdso = (void *)addr;
|
|
|
|
|
|
/*
|