lkml.org 
[lkml]   [2019]   [Jul]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH REBASE v4 03/14] arm64: Consider stack randomization for mmap base only when necessary
    Date
    Do not offset mmap base address because of stack randomization if
    current task does not want randomization.
    Note that x86 already implements this behaviour.

    Signed-off-by: Alexandre Ghiti <alex@ghiti.fr>
    Acked-by: Catalin Marinas <catalin.marinas@arm.com>
    Acked-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    ---
    arch/arm64/mm/mmap.c | 6 +++++-
    1 file changed, 5 insertions(+), 1 deletion(-)

    diff --git a/arch/arm64/mm/mmap.c b/arch/arm64/mm/mmap.c
    index bb0140afed66..e4acaead67de 100644
    --- a/arch/arm64/mm/mmap.c
    +++ b/arch/arm64/mm/mmap.c
    @@ -54,7 +54,11 @@ unsigned long arch_mmap_rnd(void)
    static unsigned long mmap_base(unsigned long rnd, struct rlimit *rlim_stack)
    {
    unsigned long gap = rlim_stack->rlim_cur;
    - unsigned long pad = (STACK_RND_MASK << PAGE_SHIFT) + stack_guard_gap;
    + unsigned long pad = stack_guard_gap;
    +
    + /* Account for stack randomization if necessary */
    + if (current->flags & PF_RANDOMIZE)
    + pad += (STACK_RND_MASK << PAGE_SHIFT);

    /* Values close to RLIM_INFINITY can overflow. */
    if (gap + pad > gap)
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-07-24 08:03    [W:8.435 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site