public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] brk: fix min_brk lower bound computation for COMPAT_BRK
@ 2011-01-02 23:05 Jiri Kosina
  2011-01-03 11:39 ` Jiri Kosina
  0 siblings, 1 reply; 15+ messages in thread
From: Jiri Kosina @ 2011-01-02 23:05 UTC (permalink / raw)
  To: Ingo Molnar, Andrew Morton; +Cc: Geert Uytterhoeven, linux-kernel

Even if CONFIG_COMPAT_BRK is set in the kernel configuration, it can still 
be overriden by randomize_va_space sysctl.

If this is the case, the min_brk computation in sys_brk() implementation 
is wrong, as it solely takes into account COMPAT_BRK setting, assuming 
that brk start is not randomized. But that might not be the case if 
randomize_va_space sysctl has been set to '2' at the time the binary has 
been loaded from disk.

In such case, the check has to be done in a same way as in 
!CONFIG_COMPAT_BRK case.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
---
 mm/mmap.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/mm/mmap.c b/mm/mmap.c
index 50a4aa0..35d9f9c 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -253,7 +253,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 make mm->start_brk
+	 * to be arbitrarily shifted
+	 */
+	if (mm->start_brk > mm->end_code)
+		min_brk = mm->start_brk;
+	else
+		min_brk = mm->end_code;
 #else
 	min_brk = mm->start_brk;
 #endif
-- 
1.7.3.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2011-04-06 20:42 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-02 23:05 [PATCH] brk: fix min_brk lower bound computation for COMPAT_BRK Jiri Kosina
2011-01-03 11:39 ` Jiri Kosina
2011-01-03 13:24   ` [PATCH v2] " Jiri Kosina
2011-03-24 21:49     ` [regression v2.6.38] " Geert Uytterhoeven
2011-03-25 10:20       ` Jiri Kosina
2011-03-26 13:51         ` Geert Uytterhoeven
2011-03-28 14:20           ` Jiri Kosina
2011-03-29 20:24             ` Geert Uytterhoeven
2011-03-29 20:37               ` Andreas Schwab
2011-04-06 20:08               ` Jiri Kosina
2011-04-06 20:23                 ` Geert Uytterhoeven
2011-04-06 20:38                   ` [PATCH] brk: COMPAT_BRK: fix detection of randomized brk (was Re: [regression v2.6.38] Re: [PATCH v2] brk: fix min_brk lower bound computation forCOMPAT_BRK) Jiri Kosina
2011-04-06 20:40                     ` Geert Uytterhoeven
2011-04-06 20:42                       ` Jiri Kosina
2011-03-29 12:02           ` [regression v2.6.38] Re: [PATCH v2] brk: fix min_brk lower bound computation for COMPAT_BRK Jiri Kosina

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox