CC stable for v2.6.38

On Tue, Apr 12, 2011 at 01:42,  <[email protected]> wrote:
>
> The patch titled
>     brk: COMPAT_BRK: fix detection of randomized brk
> has been added to the -mm tree.  Its filename is
>     brk-compat_brk-fix-detection-of-randomized-brk.patch
>
> Before you just go and hit "reply", please:
>   a) Consider who else should be cc'ed
>   b) Prefer to cc a suitable mailing list as well
>   c) Ideally: find the original patch on the mailing list and do a
>      reply-to-all to that, adding suitable additional cc's
>
> *** Remember to use Documentation/SubmitChecklist when testing your code ***
>
> See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find
> out what to do about this
>
> The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/
>
> ------------------------------------------------------
> Subject: brk: COMPAT_BRK: fix detection of randomized brk
> From: Jiri Kosina <[email protected]>
>
> 5520e89 ("brk: fix min_brk lower bound computation for COMPAT_BRK") tried
> to get the whole logic of brk randomization for legacy (libc5-based)
> applications finally right.
>
> It turns out that the way to detect whether brk has actually been
> randomized in the end or not introduced by that patch still doesn't work
> for those binaries, as reported by Geert.
>
> I don't like it, but currently see no better option than a bit flag in
> task_struct to catch the CONFIG_COMPAT_BRK && randomize_va_space == 2
> case.
>
> Signed-off-by: Jiri Kosina <[email protected]>
> Tested-by: Geert Uytterhoeven <[email protected]>
> Signed-off-by: Andrew Morton <[email protected]>
> ---
>
>  fs/binfmt_elf.c       |    6 +++++-
>  include/linux/sched.h |    3 +++
>  mm/mmap.c             |    2 +-
>  3 files changed, 9 insertions(+), 2 deletions(-)
>
> diff -puN fs/binfmt_elf.c~brk-compat_brk-fix-detection-of-randomized-brk 
> fs/binfmt_elf.c
> --- a/fs/binfmt_elf.c~brk-compat_brk-fix-detection-of-randomized-brk
> +++ a/fs/binfmt_elf.c
> @@ -941,9 +941,13 @@ static int load_elf_binary(struct linux_
>        current->mm->start_stack = bprm->p;
>
>  #ifdef arch_randomize_brk
> -       if ((current->flags & PF_RANDOMIZE) && (randomize_va_space > 1))
> +       if ((current->flags & PF_RANDOMIZE) && (randomize_va_space > 1)) {
>                current->mm->brk = current->mm->start_brk =
>                        arch_randomize_brk(current->mm);
> +#ifdef CONFIG_COMPAT_BRK
> +               current->brk_randomized = 1;
> +#endif
> +       }
>  #endif
>
>        if (current->personality & MMAP_PAGE_ZERO) {
> diff -puN 
> include/linux/sched.h~brk-compat_brk-fix-detection-of-randomized-brk 
> include/linux/sched.h
> --- a/include/linux/sched.h~brk-compat_brk-fix-detection-of-randomized-brk
> +++ a/include/linux/sched.h
> @@ -1253,6 +1253,9 @@ struct task_struct {
>  #endif
>
>        struct mm_struct *mm, *active_mm;
> +#ifdef CONFIG_COMPAT_BRK
> +       unsigned brk_randomized:1;
> +#endif
>  #if defined(SPLIT_RSS_COUNTING)
>        struct task_rss_stat    rss_stat;
>  #endif
> diff -puN mm/mmap.c~brk-compat_brk-fix-detection-of-randomized-brk mm/mmap.c
> --- a/mm/mmap.c~brk-compat_brk-fix-detection-of-randomized-brk
> +++ a/mm/mmap.c
> @@ -263,7 +263,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
>         * 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))
> +       if (current->brk_randomized)
>                min_brk = mm->start_brk;
>        else
>                min_brk = mm->end_data;
> _
>
> Patches currently in -mm which might be from [email protected] are
>
> origin.patch
> linux-next.patch
> brk-compat_brk-fix-detection-of-randomized-brk.patch
> jbd-remove-dependency-on-__gfp_nofail.patch
>
>



-- 
Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable

Reply via email to