From d7c59462c50013ea5835a60a7da1cc0b94734a4d Mon Sep 17 00:00:00 2001 From: Jiri Kosina Date: Thu, 13 Jan 2011 15:47:23 -0800 Subject: [PATCH] --- yaml --- r: 230817 b: refs/heads/master c: 5520e89485252c759ee60d313e9422447659947b h: refs/heads/master i: 230815: 7f803438578b17b402ace16e3c39489fcf49e046 v: v3 --- [refs] | 2 +- trunk/mm/mmap.c | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) 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