The story of MS13-002: How incorrectly casting fat pointers can make your code explode