ntdll: Also release memory past the last view in remove_reserved_area.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
59ecc9ccd9
commit
3f0362ec3c
@ -544,17 +544,14 @@ static void remove_reserved_area( void *addr, size_t size )
|
||||
/* unmap areas not covered by an existing view */
|
||||
WINE_RB_FOR_EACH_ENTRY( view, &views_tree, struct file_view, entry )
|
||||
{
|
||||
if ((char *)view->base >= (char *)addr + size)
|
||||
{
|
||||
munmap( addr, size );
|
||||
break;
|
||||
}
|
||||
if ((char *)view->base >= (char *)addr + size) break;
|
||||
if ((char *)view->base + view->size <= (char *)addr) continue;
|
||||
if (view->base > addr) munmap( addr, (char *)view->base - (char *)addr );
|
||||
if ((char *)view->base + view->size > (char *)addr + size) break;
|
||||
if ((char *)view->base + view->size > (char *)addr + size) return;
|
||||
size = (char *)addr + size - ((char *)view->base + view->size);
|
||||
addr = (char *)view->base + view->size;
|
||||
}
|
||||
munmap( addr, size );
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user