diff options
author | Daan Leijen <daan@microsoft.com> | 2022-04-14 15:42:13 -0700 |
---|---|---|
committer | Daan Leijen <daan@microsoft.com> | 2022-04-14 15:42:13 -0700 |
commit | fed9b254a10afee3699684849be643cdecfd5ace (patch) | |
tree | e7636897b419df75d5c0bd503d712f4b8004774d /src | |
parent | 9afdf762a6f6909040903963b756f600cbea967e (diff) |
extra check in VirtualFree for Windows on mi_os_mem_free
Diffstat (limited to 'src')
-rw-r--r-- | src/os.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -375,7 +375,7 @@ static bool mi_os_mem_free(void* addr, size_t size, bool was_committed, mi_stats // the start of the region. MEMORY_BASIC_INFORMATION info = { 0, 0 }; VirtualQuery(addr, &info, sizeof(info)); - if (info.AllocationBase < addr) { + if (info.AllocationBase < addr && ((uint8_t*)addr - (uint8_t*)info.AllocationBase) < MI_SEGMENT_SIZE) { errcode = 0; err = (VirtualFree(info.AllocationBase, 0, MEM_RELEASE) == 0); if (err) { errcode = GetLastError(); } @@ -411,7 +411,7 @@ static void* mi_win_virtual_allocx(void* addr, size_t size, size_t try_alignment if (hint != NULL) { void* p = VirtualAlloc(hint, size, flags, PAGE_READWRITE); if (p != NULL) return p; - _mi_warning_message("unable to allocate hinted aligned OS memory (%zu bytes, error code: 0x%x, address: %p, alignment: %zu, flags: 0x%x)\n", size, GetLastError(), hint, try_alignment, flags); + _mi_verbose_message("warning: unable to allocate hinted aligned OS memory (%zu bytes, error code: 0x%x, address: %p, alignment: %zu, flags: 0x%x)\n", size, GetLastError(), hint, try_alignment, flags); // fall through on error } } |