( BaT | 2022. 01. 26., sze – 22:01 )

Tegyük fel, hogy a pd->st.naplcode egy 4 byte méretű inicializálatlan buffer. Pár hónap múlva jön valaki, és észreveszi, hogy a kódbázisban 157-szer ismétlődik az "ERR" string, ezért kiemeli egy konstansba. Persze azt már nem írja mellé, hogy a konstans nem lehet 4 byte-nál hosszabb. Aztán megint eltelik pár hónap, megint jön valaki, és átírja a konstanst "ERROR"-ra. Leteszteli a kódot, minden működik ahogy kell, ezért az új verzió kiadásra kerül. Aztán jön a meglepi, hogy néha picit több adat jön vissza az ERROR-nál.

Ki volt a hibás? Az első fejlesztő, aki okosabb akart lenni a clang-tidy-nál és csak azért is strcpy-t használt strlcpy helyett, a második fejlesztő, aki nem dokumentálta a konstansra vonatkozó megkötéseket, vagy a harmadik fejlesztő, aki nem nézte át a konstans 157 felhasználását, hogy sehol nem okoz gondot a string módosítása?