[PATCH v2] ntdll: Fix find_free_area outside of reserved areas with zero_bits != 0.

Huw Davies huw at codeweavers.com
Wed Nov 20 04:57:05 CST 2019


On Mon, Nov 04, 2019 at 04:51:56PM +0100, Rémi Bernon wrote:
> The search was initiated with base == 0, which returns NULL immediately
> if MEM_TOP_DOWN is not used. Using address_space_start instead fixes
> this issue.
> 
> Then we assumed that all mmapped regions are known by Wine view tree,
> which is obviously not the case with external allocations. This could
> lead to memory corruption when find_free_area returns an expected free
> region which is already mmapped. Using MAP_FIXED forces mmap to succeed
> and corrupts the mapping.

So it seems this patch is trying to fix two bugs.  You should be able
to split this so that a first patch addresses the !top_down issue
and a second patch addresses the assumption about mmapped regions
being known.

Huw.



More information about the wine-devel mailing list