[LLVMdev] [PATCH] Add the disable_aslr option that will disable the address space layout randomization under AddressSanitizer on 10.6
echristo at apple.com
Fri Dec 9 11:07:45 PST 2011
Options when creating a main executable
-pie This makes a special kind of main executable that is position
independent (PIE). On Mac OS X 10.5 and later, the OS the OS
will load a PIE at a random address each time it is executed.
You cannot create a PIE from .o files compiled with -mdy-
namic-no-pic. That means the codegen is less optimal, but
the address randomization adds some security. When targeting
Mac OS X 10.7 or later PIE is the default for main executa-
-no_pie Do not make a position independent executable (PIE). This is
the default, when targeting 10.6 and earlier.
On Dec 9, 2011, at 11:02 AM, Kostya Serebryany wrote:
> Question to MacOS gurus: is there a way to disable ASLR (address space layout randomization) on Darwin at link time
> instead of doing setenv("DYLD_NO_PIE", "1", 1); and reexec?
> On Fri, Dec 9, 2011 at 4:28 AM, Alexander Potapenko <glider at google.com> wrote:
> The attached patch introduces the disable_aslr option (off by default)
> and the corresponding AsanDisableAslr function that should disable the
> address space randomization.
> This is now implemented for Mac OS 10.6 only.
> In order to do this we add DYLD_NO_PIE=1 to the env and restart the program.
> Next steps to be done are:
> -- check for MH_PIE bit -- if it is 0, we don't need to disable anything;
> -- use posix_spawnattr_setflags() to set the _POSIX_SPAWN_DISABLE_ASLR on 10.7
> -- disable ASLR on Linux, if needed.
> Alexander Potapenko
> Software Engineer
> Google Moscow
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev