Vulnerability Development mailing list archives

Re: Stack Allocations


From: wwieser () gmx de
Date: Sat, 14 Jul 2001 16:20:50 +0200

On Monday 09 July 2001 15:27, msoda () aspre net wrote:
Hey all,

<snip>
When running 'gcc -S' it shows that 24 bytes are allocated on the stack
for buf[].  I thought it should allocate only 16 bytes.  It works fine, it
just makes no sense to me.  If I tweak the assembly and change it to 16
bytes and also change the offsets to %ebp that reference it, it works fine
also.

Does anyone know why gcc does this?  My need to understand everything is
killing me!

It's due to gcc's preferred stack boundary. Seems to be some sort of 
alignment issue. 
Simply do a 
bash# gcc  -mpreferred-stack-boundary=2 -S foo.c -o foo.s
and you get 16 bytes as expected. 

wwieser


Current thread: