diff options
Diffstat (limited to 'mm')
| -rw-r--r-- | mm/mmap.c | 10 |
1 files changed, 9 insertions, 1 deletions
| @@ -254,7 +254,15 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) | |||
| 254 | down_write(&mm->mmap_sem); | 254 | down_write(&mm->mmap_sem); |
| 255 | 255 | ||
| 256 | #ifdef CONFIG_COMPAT_BRK | 256 | #ifdef CONFIG_COMPAT_BRK |
| 257 | min_brk = mm->end_code; | 257 | /* |
| 258 | * CONFIG_COMPAT_BRK can still be overridden by setting | ||
| 259 | * randomize_va_space to 2, which will still cause mm->start_brk | ||
| 260 | * to be arbitrarily shifted | ||
| 261 | */ | ||
| 262 | if (mm->start_brk > PAGE_ALIGN(mm->end_data)) | ||
| 263 | min_brk = mm->start_brk; | ||
| 264 | else | ||
| 265 | min_brk = mm->end_data; | ||
| 258 | #else | 266 | #else |
| 259 | min_brk = mm->start_brk; | 267 | min_brk = mm->start_brk; |
| 260 | #endif | 268 | #endif |
