Subject: Re: Wine & NetBSD?
To: Chuck Cranor <chuck@xxx.research.att.com>
From: Chuck Silvers <chuq@chuq.com>
List: tech-kern
Date: 11/19/2001 22:48:00
why would anything be mapped at 0x800000?
the only reason that anything will be mapped at 0x800000 is if
the mapping was created with MAP_FIXED. so again, if both
of these mappings really have to be at 0x800000, then
it won't work without MAP_FIXED either.
it still isn't clear how your proposed change fixes the problem.
-Chuck
On Tue, Nov 20, 2001 at 03:38:13PM +0900, Bang Jun-Young wrote:
> On Tue, Nov 20, 2001 at 03:07:39PM +0900, Bang Jun-Young wrote:
> > Because MAP_FIXED may cause Wine to crash. If there were loaded two
> > or more EXE/DLL's that have the same ImageBase (base address) for one
> > process and at least two of them were stripped, Wine wouldn't be able
> > to handle them properly. I think this is a (very) rare case, but
> > that's Wine maintainers are afraid of.
>
> Ooops, I'm sorry. This is plain wrong. Wine wouldn't be able to
> handle them regardless of MAP_FIXED in that case.
>
> The problem occurs, for example, if there's a file (which may be
> a DLL or a data) was mmapped at 0x800000 and Wine attempted to mmap
> a stripped DLL that has 0x800000 or so as ImageBase with MAP_FIXED.
> New mapping would zap the previous one and this would lead to crash.
>
> Jun-Young
>
> --
> Bang Jun-Young <bjy@mogua.org>