Windows heaps and Cygwin heap

Ryan Johnson ryan.johnson@cs.utoronto.ca
Fri May 13 10:32:00 GMT 2011


On 13/05/2011 5:29 AM, Corinna Vinschen wrote:
> On May 13 10:36, Corinna Vinschen wrote:
>> So we now know that we are actually observing a part of the ASLR
>> strategy of NT6.  Heap addresses are always randomized.  Yes, there is a
>> PE flag which controls ASLR on a per-executable basis, but unfortunately
>> this only influences the usage of ASLR for the executable image itself,
>> as well as the thread stacks.  There's no way at all to disable heap ASLR.
> It appears that I misread.  The PE flag might not influence stack
> randomization, but what I found in the net is contradictory.  However,
> even if stack ASLR is always on, it seems the preferred addresses of
> thread stacks are also in the range below 0x20000000.
Maybe I've been confused by some of that contradictory info as well, but 
I had the impression that PE improves dll placement (still random, but 
at least consistent for a given login sesssion), but does nothing at all 
for heaps, thread stacks, or non-image file mappings. I'd love to be 
even partly wrong tho...

In any case, I also have never seen problems above 0x20000000. Should we 
also rebase all cyg*.dll to land above that address? Statically-linked 
dlls shifting around are a huge problem for me, at least (emacs!)

Ryan



More information about the Cygwin-developers mailing list