Hi Prabhu, On Sun, Oct 17, 2010 at 7:47 PM, Prabhu nath <gprabhunath@xxxxxxxxx> wrote: > What I have understood is, the stack segment and the heap segment in the > virtual address space of an application is allocated by the kernel and the > starting address of these segments vary for every execution of a program ( > on the premise that the program is not changed). Unlike the program's .text > and .data sections where the starting address is defined by the linker > script and will be same for a program unless one changes the program > contents. > > Even I am interested in knowing the exact reason/algorithm adopted by the > kernel. The reason for doing this is to make it more difficult for certain exploits to work. Stack overwrite exploits typically require that the stack be at a particular location. By randomizing it, it makes this particular type of exploit much more difficult to create. -- Dave Hylands Shuswap, BC, Canada http://www.DaveHylands.com/ -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ