Like voting-machine vendors, breathlyzer vendors go crazy when defendants ask to have their source-code audited, claiming that there's a bunch of top-s33kr1t stuff in there that their competitors would steal. And, just like voting-machine software, breathalyzer software appears to have been written by squirrels dancing on the keyboard until they got something that would compile.
2. Readings are Not Averaged Correctly: When the software takes a series of readings, it first averages the first two readings. Then, it averages the third reading with the average just computed. Then the fourth reading is averaged with the new average, and so on. There is no comment or note detailing a reason for this calculation, which would cause the first reading to have more weight than successive readings. Nonetheless, the comments say that the values should be averaged, and they are not...SUMMARY OF THE SOFTWARE HOUSE FINDINGS FOR THE SOURCE CODE OF THE DRAEGER ALCOTEST 7110 MKIII-C (via Schneier)
4. Catastrophic Error Detection Is Disabled: An interrupt that detects that the microprocessor is trying to execute an illegal instruction is disabled, meaning that the Alcotest software could appear to run correctly while executing wild branches or invalid code for a period of time. Other interrupts ignored are the Computer Operating Property (a watchdog timer), and the Software Interrupt.
I write books. My latest is a YA science fiction novel called Homeland (it's the sequel to Little Brother). More books: Rapture of the Nerds (a novel, with Charlie Stross); With a Little Help (short stories); and The Great Big Beautiful Tomorrow (novella and nonfic). I speak all over the place and I tweet and tumble, too.