Looking at the disassembly (along with an instruction trace) of ld.so installed in Ubuntu 9.04, I swear I'm seeing data being stored below the stack pointer (i.e., beyond the top of the stack) at times. This seems insane to me, but maybe this is more common than I think. Does this happen often?
Here's what I see:
ebp: 0xBF8269E8, esp: 0xBF8269DC
c98: 8b 45 f0 mov -0x10(%ebp),%eax
c9b: 8d 14 06 lea (%esi,%eax,1),%edx
c9e: 8b 83 28 03 00 00 mov 0x328(%ebx),%eax
ca4: 3b 50 04 cmp 0x4(%eax),%edx