[llvm-commits] [LLVMdev] [PATCH] Add the disable_aslr option that will disable the address space layout randomization under AddressSanitizer on 10.6

Eric Christopher 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-
                 bles.

     -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:

> +llvmdev
> 
> 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? 
> 
> Thanks, 
> 
> --kcc 
> 
> 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
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20111209/75e303c7/attachment.html>


More information about the llvm-commits mailing list