From e9bc63909b403325b47968a85f8729f2b7a82dbd Mon Sep 17 00:00:00 2001 From: Leonard Hecker Date: Tue, 3 Jun 2025 13:37:10 +0200 Subject: [PATCH] Fix a virtual memory leak on Windows --- src/sys/windows.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/sys/windows.rs b/src/sys/windows.rs index 5175c908b93..76446ddaa0d 100644 --- a/src/sys/windows.rs +++ b/src/sys/windows.rs @@ -515,9 +515,11 @@ pub unsafe fn virtual_reserve(size: usize) -> apperr::Result> { /// /// This function is unsafe because it uses raw pointers. /// Make sure to only pass pointers acquired from [`virtual_reserve`]. -pub unsafe fn virtual_release(base: NonNull, size: usize) { +pub unsafe fn virtual_release(base: NonNull, _size: usize) { unsafe { - Memory::VirtualFree(base.as_ptr() as *mut _, size, Memory::MEM_RELEASE); + // NOTE: `VirtualFree` fails if the pointer isn't + // a valid base address or if the size isn't zero. + Memory::VirtualFree(base.as_ptr() as *mut _, 0, Memory::MEM_RELEASE); } }