[Top] [All Lists]

Re: [RFC] User stack pointer randomisation

To: "Ralf Baechle" <>
Subject: Re: [RFC] User stack pointer randomisation
From: "Franck Bui-Huu" <>
Date: Thu, 19 Jul 2007 13:47:19 +0200
Cc: linux-mips <>
Dkim-signature: a=rsa-sha1; c=relaxed/relaxed;; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=g9K/NR/9/Ql2cLzgEzViVBldPs+6ITR98CJxYWKYxM4ZZlDzcE9aj8KVNe3VZ6+NaRORhKPXXXorFuaih7DAkbSgkU8+oYnh+tZMo/yNGxkpGlVu4KHTh2a8LCCMnGhTzLRmDujeNZsc0eekdz9AR3bqyXGlzy1geLNNYF9NkPs=
Domainkey-signature: a=rsa-sha1; c=nofws;; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=tD+DXxBRscJA8kANNqsUAftFwzxyD4kUYiN0r6Htm1AVZj1wcXDGDJJSs1X2zh4Us1VDXBnHQ/fbkqvqAnlH91NDvHck9Oe+Hk9SofXf9OTGKAiS8nXypiaHbO474IB4g0G1dq337GUmTGGsO4bi/+2YY8aXLtgkHOQubTXQCmw=
In-reply-to: <>
Original-recipient: rfc822;
References: <> <>
Hi Ralf,

On 7/19/07, Ralf Baechle <> wrote:
On Thu, Jul 19, 2007 at 09:10:23AM +0200, Franck Bui-Huu wrote:

> This patch adds a page size range randomisation to the user
> stack pointer.

Looks fine to me aside of the issue Nigel raised.

I'll fix it.

There is a constant defining the ABI-specific alignment in <asm/asm.h>:

I didn't know about them. ALSZ name is not really self speaking, don't
you think ?

#if (_MIPS_SIM == _MIPS_SIM_ABI32)
#define ALSZ    7
#define ALMASK  ~7
#define ALSZ    15
#define ALMASK  ~15

this is weird I would have defined them like this instead:

#if (_MIPS_SIM == _MIPS_SIM_ABI32)
#define ALSZ 8
#elif (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64)
#define ALSZ 16

#define ALMASK (~(ALSZ-1))

This will unnecessarily increase the alignment of the stack wasting a few
bytes of memory for O32 binaries running on 64-bit kernels but I'd just
ignore this artefact; the cure would be uglier than the disease ;-)

specially that we don't care to waste a couple of bytes in this case...


<Prev in Thread] Current Thread [Next in Thread>