Vulnerability Development mailing list archives

Re: Stack Allocations


From: "Jeff" <lists () jeff ath cx>
Date: Mon, 9 Jul 2001 16:54:02 -0700

Hello,

I ran into the same question when I first discovered buffer overflow papers.
I asked around at the time and the most I could figure out was that it's
some kind of "pillow" of caution.  Seems kinda strange to me too that the C
compiler gives you ANY leeway like that at all, but it does.  I don't know
why, but I know that not many people know why either :)

Jeff
----- Original Message -----
From: <msoda () aspre net>
To: <vuln-dev () securityfocus com>
Sent: Monday, July 09, 2001 6:27 AM
Subject: Stack Allocations


Hey all,

I have been reading up on buffer overflows and have noticed something odd
with gcc assembly output.  Consider the following:

void func()
{
   char buf[15];
}

main()
{
   func();
}

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!

-Marc






Current thread: