Kernel-hardening Archive on lore.kernel.org
 help / color / Atom feed
From: Jason Cooper <jason@lakedaemon.net>
To: william.c.roberts@intel.com, Yann Droneaud <ydroneaud@opteya.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	kernel-hardening@lists.openwall.com
Cc: linux@arm.linux.org.uk, akpm@linux-foundation.org,
	keescook@chromium.org, tytso@mit.edu, arnd@arndb.de,
	gregkh@linuxfoundation.org, catalin.marinas@arm.com,
	will.deacon@arm.com, ralf@linux-mips.org,
	benh@kernel.crashing.org, paulus@samba.org, mpe@ellerman.id.au,
	davem@davemloft.net, tglx@linutronix.de, mingo@redhat.com,
	hpa@zytor.com, x86@kernel.org, viro@zeniv.linux.org.uk,
	nnk@google.com, jeffv@google.com, dcashman@android.com,
	Jason Cooper <jason@lakedaemon.net>
Subject: [kernel-hardening] [PATCH v2 2/7] x86: Use simpler API for random address requests
Date: Sat, 30 Jul 2016 15:42:39 +0000
Message-ID: <20160730154244.403-3-jason@lakedaemon.net> (raw)
In-Reply-To: <20160730154244.403-1-jason@lakedaemon.net>

Currently, all callers to randomize_range() set the length to 0 and
calculate end by adding a constant to the start address.  We can
simplify the API to remove a bunch of needless checks and variables.

Use the new randomize_addr(start, range) call to set the requested
address.

Signed-off-by: Jason Cooper <jason@lakedaemon.net>
---
Changes from v1:
 - none

 arch/x86/kernel/process.c    | 3 +--
 arch/x86/kernel/sys_x86_64.c | 5 +----
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index 96becbbb52e0..a083a2c0744e 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -507,8 +507,7 @@ unsigned long arch_align_stack(unsigned long sp)
 
 unsigned long arch_randomize_brk(struct mm_struct *mm)
 {
-	unsigned long range_end = mm->brk + 0x02000000;
-	return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
+	return randomize_addr(mm->brk, 0x02000000);
 }
 
 /*
diff --git a/arch/x86/kernel/sys_x86_64.c b/arch/x86/kernel/sys_x86_64.c
index 10e0272d789a..f9cad22808fc 100644
--- a/arch/x86/kernel/sys_x86_64.c
+++ b/arch/x86/kernel/sys_x86_64.c
@@ -101,7 +101,6 @@ static void find_start_end(unsigned long flags, unsigned long *begin,
 			   unsigned long *end)
 {
 	if (!test_thread_flag(TIF_ADDR32) && (flags & MAP_32BIT)) {
-		unsigned long new_begin;
 		/* This is usually used needed to map code in small
 		   model, so it needs to be in the first 31bit. Limit
 		   it to that.  This means we need to move the
@@ -112,9 +111,7 @@ static void find_start_end(unsigned long flags, unsigned long *begin,
 		*begin = 0x40000000;
 		*end = 0x80000000;
 		if (current->flags & PF_RANDOMIZE) {
-			new_begin = randomize_range(*begin, *begin + 0x02000000, 0);
-			if (new_begin)
-				*begin = new_begin;
+			*begin = randomize_addr(*begin, 0x02000000);
 		}
 	} else {
 		*begin = current->mm->mmap_legacy_base;
-- 
2.9.2

  parent reply index

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-28 20:47 [kernel-hardening] [PATCH 0/7] char/random: Simplify " Jason Cooper
2016-07-28 20:47 ` [kernel-hardening] [PATCH 1/7] random: Simplify API for " Jason Cooper
2016-07-29  8:59   ` [kernel-hardening] " Yann Droneaud
2016-07-29 18:20     ` Jason Cooper
2016-07-28 20:47 ` [kernel-hardening] [PATCH 2/7] x86: Use simpler " Jason Cooper
2016-07-28 20:47 ` [kernel-hardening] [PATCH 3/7] ARM: " Jason Cooper
2016-07-28 20:47 ` [kernel-hardening] [PATCH 4/7] arm64: " Jason Cooper
2016-07-29 13:48   ` [kernel-hardening] " Will Deacon
2016-07-28 20:47 ` [kernel-hardening] [PATCH 5/7] tile: " Jason Cooper
2016-07-28 20:47 ` [kernel-hardening] [PATCH 6/7] unicore32: " Jason Cooper
2016-07-28 20:47 ` [kernel-hardening] [PATCH 7/7] random: Remove unused randomize_range() Jason Cooper
2016-07-30 15:42 ` [kernel-hardening] [PATCH v2 0/7] char/random: Simplify random address requests Jason Cooper
2016-07-30 15:42   ` [kernel-hardening] [PATCH v2 1/7] random: Simplify API for " Jason Cooper
2016-07-31 16:46     ` [kernel-hardening] " Kees Cook
2016-07-31 20:56       ` Jason Cooper
2016-08-01 19:47         ` Kees Cook
2016-08-01 23:17           ` Jason Cooper
2016-08-02  3:35             ` Michael Ellerman
2016-08-03 18:42               ` Jason Cooper
2016-07-30 15:42   ` Jason Cooper [this message]
2016-07-30 15:42   ` [kernel-hardening] [PATCH v2 3/7] ARM: Use simpler " Jason Cooper
2016-07-30 15:42   ` [kernel-hardening] [PATCH v2 4/7] arm64: " Jason Cooper
2016-07-30 15:42   ` [kernel-hardening] [PATCH v2 5/7] tile: " Jason Cooper
2016-07-30 15:42   ` [kernel-hardening] [PATCH v2 6/7] unicore32: " Jason Cooper
2016-07-30 15:42   ` [kernel-hardening] [PATCH v2 7/7] random: Remove unused randomize_range() Jason Cooper
2016-08-03 23:39 ` [kernel-hardening] [PATCH v3 0/7] char/random: Simplify random address requests Jason Cooper
2016-08-03 23:39   ` [kernel-hardening] [PATCH v3 1/7] random: Simplify API for " Jason Cooper
2016-08-04 12:47     ` [kernel-hardening] " Yann Droneaud
2016-08-03 23:39   ` [kernel-hardening] [PATCH v3 2/7] x86: Use simpler " Jason Cooper
2016-08-03 23:39   ` [kernel-hardening] [PATCH v3 3/7] ARM: " Jason Cooper
2016-08-03 23:39   ` [kernel-hardening] [PATCH v3 4/7] arm64: " Jason Cooper
2016-08-03 23:39   ` [kernel-hardening] [PATCH v3 5/7] tile: " Jason Cooper
2016-08-03 23:39   ` [kernel-hardening] [PATCH v3 6/7] unicore32: " Jason Cooper
2016-08-03 23:39   ` [kernel-hardening] [PATCH v3 7/7] random: Remove unused randomize_range() Jason Cooper
2016-08-03 23:48     ` [kernel-hardening] " Andrew Morton
2016-08-04  0:19       ` Jason Cooper
2016-08-04  2:41   ` [kernel-hardening] Re: [PATCH v3 0/7] char/random: Simplify random address requests Kees Cook

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160730154244.403-3-jason@lakedaemon.net \
    --to=jason@lakedaemon.net \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=catalin.marinas@arm.com \
    --cc=davem@davemloft.net \
    --cc=dcashman@android.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hpa@zytor.com \
    --cc=jeffv@google.com \
    --cc=keescook@chromium.org \
    --cc=kernel-hardening@lists.openwall.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=nnk@google.com \
    --cc=paulus@samba.org \
    --cc=ralf@linux-mips.org \
    --cc=tglx@linutronix.de \
    --cc=tytso@mit.edu \
    --cc=viro@zeniv.linux.org.uk \
    --cc=will.deacon@arm.com \
    --cc=william.c.roberts@intel.com \
    --cc=x86@kernel.org \
    --cc=ydroneaud@opteya.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Kernel-hardening Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/kernel-hardening/0 kernel-hardening/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 kernel-hardening kernel-hardening/ https://lore.kernel.org/kernel-hardening \
		kernel-hardening@lists.openwall.com
	public-inbox-index kernel-hardening

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/com.openwall.lists.kernel-hardening


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git