Patch "x86/elf: Remove the unnecessary ADDR_NO_RANDOMIZE checks" has been added to the 4.12-stable tree
Subsystems (5)
This is a note to let you know that I've just added the patch titled
x86/elf: Remove the unnecessary ADDR_NO_RANDOMIZE checks
to the 4.12-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
x86-elf-remove-the-unnecessary-addr_no_randomize-checks.patch
and it can be found in the queue-4.12 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
01578e36163cdd0e4fd61d9976de15f13364e26dMon Sep 17 00:00:00 2001
From: Oleg Nesterov <[email protected]>
Date: Tue, 15 Aug 2017 17:40:11 +0200
Subject: x86/elf: Remove the unnecessary ADDR_NO_RANDOMIZE checks
From: Oleg Nesterov <[email protected]>
commit 01578e36163cdd0e4fd61d9976de15f13364e26d upstream.
The ADDR_NO_RANDOMIZE checks in stack_maxrandom_size() and randomize_stack_top() are not required.
PF_RANDOMIZE is set by load_elf_binary() only if ADDR_NO_RANDOMIZE is not set, no need to re-check after that.
--- arch/x86/mm/mmap.c | 3 +-- fs/binfmt_elf.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-)
arch/x86/mm/mmap.c +1 -2
@@ -50,8 +50,7 @@ unsigned long tasksize_64bit(void)static unsigned long stack_maxrandom_size (unsigned long task_size) {unsigned long max =0 ; -if ((current->flags &PF_RANDOMIZE ) && - !(current->personality &ADDR_NO_RANDOMIZE )) { +if (current->flags &PF_RANDOMIZE ) { max = (-1UL ) &__STACK_RND_MASK (task_size ==tasksize_32bit ()); max <<=PAGE_SHIFT ; }
fs/binfmt_elf.c +1 -2
@@ -666,8 +666,7 @@ static unsigned long randomize_stack_top {unsigned long random_variable =0 ; -if ((current->flags &PF_RANDOMIZE ) && - !(current->personality &ADDR_NO_RANDOMIZE )) { +if (current->flags &PF_RANDOMIZE ) { random_variable =get_random_long (); random_variable &=STACK_RND_MASK ; random_variable <<=PAGE_SHIFT ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.12/x86-elf-remove-the-unnecessary-addr_no_randomize-checks.patch queue-4.12/mm-fix-double-mmap_sem-unlock-on-mmf_unstable-enforced-sigbus.patch queue-4.12/x86-fix-norandmaps-addr_no_randomize.patch
Quoted 3 lines · On 08/20, [email protected] wrote:
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Yes, I think this is not -stable material, this is really minor cleanup.
Quoted 62 lines
From
01578e36163cdd0e4fd61d9976de15f13364e26dMon Sep 17 00:00:00 2001
From: Oleg Nesterov <[email protected]>
Date: Tue, 15 Aug 2017 17:40:11 +0200
Subject: x86/elf: Remove the unnecessaryADDR_NO_RANDOMIZEchecksFrom: Oleg Nesterov <[email protected]>
commit
01578e36163cdd0e4fd61d9976de15f13364e26dupstream.The
ADDR_NO_RANDOMIZEchecks instack_maxrandom_size()andrandomize_stack_top()are not required.
PF_RANDOMIZEis set byload_elf_binary()only ifADDR_NO_RANDOMIZEis not set, no need to re-check after that.Signed-off-by Oleg Nesterov <[email protected]>Signed-off-by Thomas Gleixner <[email protected]>Reviewed-by Dmitry Safonov <[email protected]>Cc Andy Lutomirski <[email protected]>Cc Andrew Morton <[email protected]>Cc Borislav Petkov <[email protected]>Cc Linus Torvalds <[email protected]>Cc "Kirill A. Shutemov" <[email protected]>Signed-off-by Greg Kroah-Hartman <[email protected]>--- arch/x86/mm/mmap.c | 3 +-- fs/binfmt_elf.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-)arch/x86/mm/mmap.c +1
-2@@ -50,8 +50,7 @@ unsigned long tasksize_64bit(void)static unsigned long stack_maxrandom_size (unsigned long task_size) {unsigned long max =0 ; -if ((current->flags &PF_RANDOMIZE ) && - !(current->personality &ADDR_NO_RANDOMIZE )) { +if (current->flags &PF_RANDOMIZE ) { max = (-1UL ) &__STACK_RND_MASK (task_size ==tasksize_32bit ()); max <<=PAGE_SHIFT ; }fs/binfmt_elf.c +1
-2@@ -666,8 +666,7 @@ static unsigned long randomize_stack_top {unsigned long random_variable =0 ; -if ((current->flags &PF_RANDOMIZE ) && - !(current->personality &ADDR_NO_RANDOMIZE )) { +if (current->flags &PF_RANDOMIZE ) { random_variable =get_random_long (); random_variable &=STACK_RND_MASK ; random_variable <<=PAGE_SHIFT ;Patches currently in stable-queue which might be from [email protected] are
queue-4.12/x86-elf-remove-the-unnecessary-addr_no_randomize-checks.patchqueue-4.12/mm-fix-double-mmap_sem-unlock-on-mmf_unstable-enforced-sigbus.patchqueue-4.12/x86-fix-norandmaps-addr_no_randomize.patch
Greg KH
maintainerQuoted 6 lines · Oleg Nesterov
Quoted 3 lines · On 08/20, [email protected] wrote:
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Yes, I think this is not -stable material, this is really minor cleanup.
But I'm pretty sure it is needed for the patch after this one in the series, right?
thanks,
greg k-h
Quoted 11 lines · Greg KH
Quoted 6 lines · Oleg Nesterov
Quoted 3 lines · On 08/20, [email protected] wrote:
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Yes, I think this is not -stable material, this is really minor cleanup.
But I'm pretty sure it is needed for the patch after this one in the series, right?
Confused... it was 2/2, afaics nothing depends on this change. In particular, 1/2 47ac5484fd961420e5ec0bb5b972fde381f57365 ("x86: Fix norandmaps/ADDR_NO_RANDOMIZE") doesn't depend.
Nevermind, if you have already applied this cleanup it should not hurt, it is very simple and hopefully "obviously correct".
Oleg.