Reto,

> Actually these cases are not so rare. As soon as you use Ada.Containers
> you are almost there. 'Access to a nested function is enough. The
> following code illustrates this:

This was the case...

> The stack of the resulting binary is executable:
>
> GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
>                 0x0000000000000000 0x0000000000000000  RWE    8
>
> Tested with gnat in Lenny, Squeeze and sid (amd64/i386).
>
> It's interesting that the same code compiled with GNAT GPL 2010 does not
> result in an executable stack:
>
> GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
>                 0x0000000000000000 0x0000000000000000  RW     8

... but as you found out some work as been done to remove most cases
where a stack
must be executable.

Pascal.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|              http://www.obry.net
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595


--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: 
http://lists.debian.org/[email protected]

Reply via email to