| To: | Ralf Baechle <ralf@linux-mips.org> |
|---|---|
| Subject: | [PATCH] Improve previous user stack pointer randomisation patch |
| From: | Franck Bui-Huu <fbuihuu@gmail.com> |
| Date: | Fri, 20 Jul 2007 11:24:55 +0200 |
| Cc: | linux-mips <linux-mips@linux-mips.org>, nigel@mips.com |
| Dkim-signature: | a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:user-agent:mime-version:to:cc:subject:content-type:content-transfer-encoding; b=qBYC0ZYelqatteZMWHLriIU3ZyOT5QMaUM+9+ftNM+qhCKfrqn6/fP4bi4q4GzcaaNk5Gnjx1/wuJRNIZthXd6asQvmuedPDIzHWkGJX0eg99KzPaeKMuaRlwgNENvpy5GfwvKDG8gufFEMUxG0hGjjNAiNyQhohIo2343AQLOY= |
| Domainkey-signature: | a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:user-agent:mime-version:to:cc:subject:content-type:content-transfer-encoding; b=oz+l3JmQ6D35I0sggw5XzPJ6NN1SMBQxkQR9+ALl/3B8I40shJZN8bQtmJXK/cJckbCcRkZoQrVvWV/2Wbt1TIZ8OC+Ad6vrR53r3pT532nziZ9J8+JDUVTbZNivmpvbq6c8SjLtLhkQZrMhO3AJRP6NqcZwL+8GVpAVLBap2lY= |
| Original-recipient: | rfc822;linux-mips@linux-mips.org |
| Sender: | linux-mips-bounce@linux-mips.org |
| User-agent: | Thunderbird 2.0.0.4 (X11/20070615) |
This patch improves commit acc6f0110cf735e6c6e0f53736dbb054eafcd13c
by:
- not using ALMASK to align stack pointer because this macro
is used for kernel context. The kernel and the application
are not always compiled with the same ABI.
- testing PF_RANDOMIZE process flag which is raised when the
old condition we tested is true.
The first improvement was suggested by Nigel Stephens.
Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
---
arch/mips/kernel/process.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
index bd05f5a..b5b2f31 100644
--- a/arch/mips/kernel/process.c
+++ b/arch/mips/kernel/process.c
@@ -27,7 +27,6 @@
#include <linux/kallsyms.h>
#include <linux/random.h>
-#include <asm/asm.h>
#include <asm/bootinfo.h>
#include <asm/cpu.h>
#include <asm/dsp.h>
@@ -464,13 +463,14 @@ out:
}
/*
- * Don't forget that the stack pointer must be aligned on a 8 bytes
- * boundary for 32-bits ABI and 16 bytes for 64-bits ABI.
+ * The stack pointer must be aligned on a 8 bytes boundary for 32-bits
+ * ABI and 16 bytes for 64-bits ABI. To make things simple we force to
+ * the maximum alignment required by any ABI.
*/
unsigned long arch_align_stack(unsigned long sp)
{
- if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
+ if (current->flags & PF_RANDOMIZE)
sp -= get_random_int() & ~PAGE_MASK;
- return sp & ALMASK;
+ return sp & ~0xf;
}
--
1.5.2.3
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [PATCH] 16KB page size in mips32, Dajie Tan |
|---|---|
| Next by Date: | Re: Wait queue problem, Misbah khan |
| Previous by Thread: | [PATCH] 16KB page size in mips32, Dajie Tan |
| Next by Thread: | Re: Wait queue problem, Misbah khan |
| Indexes: | [Date] [Thread] [Top] [All Lists] |