Well first of all this is my very first hands on exp. with Assembly...
I was going through the smashing the stack for fun and profit article
and stumblled across with this doubt.
Using the very first example as
test.c
void print(int a,int b,int c)
{
char buffer1[5];
}
void main()
{
print(1,2,3);
}
the assembler output is
print:
pushl %ebp
movl %esp, %ebp
subl $24, %esp
leave
ret
If I make the buffer1 to size 4 the subl is nothing but deducting 4 from
sp
subl
$4, %esp
now how is it possible that one byte extra could allocate so much
space when the word size is of 8 bytes. What are these extra bytes for.
cheers
Rohit