There are many pieces of process global runtime state that can get corrupted that are irrelevant to the input data.
You can get lucky and sometimes avoid corruption, but eventually you're going to hit something important like leaving a libc heap allocator mutex locked when you kill a thread in the middle of an allocation.