3 ms·
A cautionary tale here: when you are testing, if you mock out even low-level I/O utilities, you’re vulnerable to those utilities changing specification subtly.
by btown 4y ago
A cautionary tale here: when you are testing, if you mock out even low-level I/O utilities, you’re vulnerable to those utilities changing specification subtly. You can supply-chain attack yourself by simply updating a library.
Full filesystem/service-engaging integration tests are helpful but far from exhaustive - here, one wouldn’t have just needed to read the cropped file using standard display systems and count the pixels, but hash the underlying file in its entirety.
For critical libraries in an I/O pipeline, encourage team members to read CHANGELOGs - both before choosing a library to make sure they’re maintained, and closely when even doing a minor upgrade.
- DoctorNick 4y agoChange logs wouldn’t have helped here, this behavior change was undocumented.
- btown 4y agoIMO the Android team should have realized the Android team was not creating internal libraries at a sufficient level of stability and change tracking for the Android team. This quickly gets into cultural priorities that I have very little context on - but I do think that processes failed here.