Alexandre Julliard : ntdll: Also release memory past the last view in remove_reserved_area.
Alexandre Julliard
julliard at winehq.org
Wed Sep 13 14:47:03 CDT 2017
Module: wine
Branch: master
Commit: 3f0362ec3c38d4723c7a8b51eb0cb79f437f1093
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3f0362ec3c38d4723c7a8b51eb0cb79f437f1093
Author: Alexandre Julliard <julliard at 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 at 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 );
}
More information about the wine-cvs
mailing list