Circumventing Go's memory safety: Using a race to read/write arbitrary addresses