<br><br><div class="gmail_quote">On Fri, Dec 9, 2011 at 12:00 PM, Alexander Potapenko <span dir="ltr"><<a href="mailto:glider@google.com">glider@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">> As for the patch, I really don't like<br>
>   1. 3 different cases for 3 different flavors of MacOS. How are we goring<br>
> to support it?<br>
</div>The first is Leopard, which we don't want to support at all. Maybe we<br>
should check that in some other place.<br>
The second is Snow Leopard, where ASLR is controlled by the<br>
DYLD_NO_PIE env var, which is read by the dynamic loader.<br>
The third is Lion, which does not support DYLD_NO_PIE, but instead<br>
supports a flag I've mentioned above. I suppose further Mac OS<br>
releases will support only this way.<br>
<br>
There also is the MH_PIE bit in the Mach-O header, which we can flip<br>
to disable ASLR. But I'm not sure whether it won't disable the PIE<br>
behavior at all.<br>
Also, we'll need some special tool for that.<br>
<div class="im"><br>
>   2. doing setenv+reexec. This will be a debugging nightmare for us and for<br>
> users.<br>
</div>One can avoid setenv+exec by setting disable_aslr to 0. In this case<br>
we can print the big warning (if someone wants to run the binary under<br>
GDB, ASLR will anyway be disabled).<br>
<div class="im">><br>
> I would prefer just to print a descriptive warning message and exit:<br>
>    ==123== ERROR: AddressSanitizer on MacOS requires to disable ASRL for the<br>
> executable.<br>
>    ==123== ERROR: You can do it this way:<br>
>    ==123== ERROR: <how to disable ASLR><br>
>    ==123== ABORTING<br>
</div>"pass the no_pie to your linker"<br>
We can do this in the Clang driver, but a proper fix will involve<br>
removing all the instances of -pie from the arg list.<br>
I've recently posted a question about that to cfe-dev, but<br>
unfortunately nobody responded.<br>
<br>
BTW, have you given up the idea of having zero offset for the shadow?<br>
We'll need PIE for that.<br></blockquote><div><br></div><div>The zero offset (which speeds up asan by ~6%) requires PIE, but also requires no ASLR. </div><div> </div><div>--kcc </div></div><br>