A little bit of all those things -- it worked just fine, on the device, for 2 years, including the occasional eastern hemisphere TFR. It only happened with a TFR that was close to the international date line which made the ascii -> float conversion run off the end of the string. I admit I didn't test that eventuality -- but I was using a C library function that's been in constant use for over 30 years.
There's no real weather data standard, XM Weather is a collection of formats (nexrad radar comes over as a bitmap, weather reports are METAR encoded).
The Temporary Flight Restrictions are in XML, well, not really XML, it's a really nasty format designed by Jeppesen were you basically have to write your own XML parser because they made it impossible to parse with a standard XML parser.
It just goes to show that even when you test the hell out of something, you can still get blind sided by something you never thought of, but once it happens, it seems really obvious.
Remember the problem the F-22 had going across the international date line -- that code was a lot less tested than mine in that regard -- but they just didn't think about it.
http://www.defenseindustrydaily.com/f22-squadron-shot-down-b...