diff --git a/[refs] b/[refs] index e710baf56802..8725e5a93ae0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 32d6feadf4e17ea9b98071be9bbf402a74a4f818 +refs/heads/master: 5520e89485252c759ee60d313e9422447659947b diff --git a/trunk/mm/mmap.c b/trunk/mm/mmap.c index 73cc648873d6..2ec8eb5a9cdd 100644 --- a/trunk/mm/mmap.c +++ b/trunk/mm/mmap.c @@ -254,7 +254,15 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) down_write(&mm->mmap_sem); #ifdef CONFIG_COMPAT_BRK - min_brk = mm->end_code; + /* + * CONFIG_COMPAT_BRK can still be overridden by setting + * randomize_va_space to 2, which will still cause mm->start_brk + * to be arbitrarily shifted + */ + if (mm->start_brk > PAGE_ALIGN(mm->end_data)) + min_brk = mm->start_brk; + else + min_brk = mm->end_data; #else min_brk = mm->start_brk; #endif