How do you know that the rhs wasn't a valid pointer? Just from the address? The IntInf_mul() seems to be called with a huge third (`bytes') argument: 153 megabytes.