From 3f0362ec3c38d4723c7a8b51eb0cb79f437f1093 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 13 Sep 2017 10:11:54 +0200 Subject: [PATCH] ntdll: Also release memory past the last view in remove_reserved_area. Signed-off-by: Alexandre Julliard --- dlls/ntdll/virtual.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c index ce2469829b0..b08bde7f1dd 100644 --- a/dlls/ntdll/virtual.c +++ b/dlls/ntdll/virtual.c @@ -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 ); }