Oh crap, of course, the multiply can overflow too. Well that reinforces my point that writing code without overflows in C/C++ is just horribly frustrating.