Any developers suffering like I was with odd crash issues
might like to look into this possibility. I'm not sure how
well the restrictions on memory use in exim are documented,
but it wasn't one I'd realised.
If your code does any allocation, which pretty much means
any variable- or string-handling, and expects the results
to stay around (like in a variable): check the call-chains
leading to your code for use of store_reset(). If one is done
it sets you up for a much-later alloc to hand out your memory
again, hence corruption.
--
Cheers,
Jeremy