(Neither my own mail nor Ulrichs answer reached me over the mailing
list, is there a known problem with it?)

> Uh oh.  I guess what's happening here is that the base address of
> COMCTL32 (and the other system DLLs as well, b.t.w.) is just slightly
> below 3GB, 

Yes, it is checking at 0xbfb70000

> and so the attempted access in IsBadReadPtr() falls into
> the unmapped range immediately below the Linux stack, which is mapped
> as VM_GROWSDOWN.  Such accesses trigger automatic growing of the
> stack downwards to include the accessed address.  Therefore, not only
> will the access succeed, subsequent attempts to use the range for
> mmap() will fail :-/

Thank you, I did not have your explanation, but obviously this is, what I was 
experiencing. 

> I'm not sure how to best fix this.  IsBadReadPtr() really should't
> modify anything ...    One option might be to map a dummy page at
> some point near the top, say at 3GB - 1MB;  this would serve as a
> 'stop' preventing further stack growth.

At least this option works :-) I used the appendend patch to test it. 
If nobody objects, I will submit it to wine-patches. 

Greetings, 

Peter

patchfile




-- 
Peter Ganten
[EMAIL PROTECTED]

Reply via email to