On Windows memory is never released once it's mapped with VirtualAlloc. This isn't a huge deal for many applications but with LibFuzzer this can lead to OOM's quite quickly.
The memory management model for the sanitizer allocator doesn't seem to quite fit the needs of Windows in this case, I think the assumption is that pages will be reclaimed and remapped as needed by the OS when they are touched. This patch attempts to unmap and remap pages, I'm putting it up for comment and review, I'm guessing this will need some additional work to avoid putting Windows code in a shared section.
Thank you everyone for your time, attention, and expertise!
patch authored by mcgov and Jordyn Puryear
MmapFixedOrDie can't return nulltpr