free might overwrite the memory, so we can't expect to see the NULs we overwrote with, but at least we shouldn't see the original data.
It's meant to avoid being optimized out memory_cleanse lifted from bitcoin