This seems to be the most error prone part of the system. The fuzzer should focus/do these steps.
- create new memory region (to ensure we properly reject bad regions)
- write and read to memory with these regions (to ensure we can work with the weird regions)
- somehow validate that the data looks reasonable in memory