Module: wine Branch: master Commit: 3f0362ec3c38d4723c7a8b51eb0cb79f437f1093 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3f0362ec3c38d4723c7a8b51eb...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Sep 13 10:11:54 2017 +0200
ntdll: Also release memory past the last view in remove_reserved_area.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
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 ce24698..b08bde7 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 ); }