In article e814db780812120659qd384182y8f8c1a69d39c2e2e@mail.gmail.com, Filipe Brandenburger filbranden@gmail.com wrote:
Hi,
We are porting some applications from CentOS 4 to CentOS 5, the applications use mmap, and we found out that they sometimes crash in CentOS 5. We found out that this is due to the fact that CentOS 5 does randomization of the address space when loading binaries, libraries, and when using mmap, so that is what's causing our problem.
The thing is, I'm trying to google for it, but I did not find any useful information on ASLR present in CentOS 5/RHEL 5/Linux 2.6.18. If anyone has any good pointers on reliable information on what does that code do, how to configure/tweak it, or how to use mmap properly to work around the issues, I would really appreciate it. In particular, if there is a switch/option that would allow us to disable it for some binaries/libraries only, it would be great, since this could allow us to do the upgrade sooner and try to find the proper fix for the problem later.
From what I've been able to find, you can disable ASLR completely by
putting the following line in /etc/sysctl.conf:
kernel.randomize_va_space = 0
Alternatively, you can run your program with ASLR disabled by using setarch to invoke it:
setarch `uname -m` -R yourprog <yourprogoptions>
The -R option disables randomisation. You might want to look at the -L option for setarch too (man setarch).
Cheers Tony