Re: Non-executable stack
Re: Non-executable stack
- Subject: Re: Non-executable stack
- From: David Blanton <email@hidden>
- Date: Thu, 03 Apr 2003 08:41:30 -0700
On 4/2/03 11:08 PM, "Robert Plantz" <email@hidden> wrote:
>
On Wednesday, April 2, 2003, at 07:10 PM, Justin Walker wrote:
>
>
>
>
>> tisdagen den 1 april 2003 kl 05.54 skrev Jim Magee:
>
>
>
>> Out of curiosity, I've always wondered why the ABI grows the stack
>
>> downwards. It seems to be just as easy to grow it upwards, which
>
>> would make buffer overflows much harder, if not impossible.
>
>
>
> Habit, mostly, I think. Most of this stuff grew up on PDP11's, and
>
> the PDP11 architecture gave downward growing stacks (among other
>
> things, interrupts and subroutine calls predecremented stack pointers;
>
> and the register specifiers in instructions made it easy to 'comply'
>
> with that mode of operation). With modernXXXmore recent architectures
>
> like PowerPC where a stack is more ABI than ISA, you can, as it were,
>
> go either way (:-}).
>
>
Perhaps I'm being too simplistic, but if I wanted to make maximum
>
use of memory, I would store my program code at one end and
>
start my stack at the other, then let them grow toward each
>
other.
>
>
--Bob
Interesting, that is how Mac OS use to do it. Heap at one end, stack at the
other and then sniff out for collisions.
David Blanton
"Cocoa FNG"
_______________________________________________
darwin-kernel mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/darwin-kernel
Do not post admin requests to the list. They will be ignored.