Najpopularniji , objavljenog na StackOverflow-u, s greškom koja uzrokuje ispravno prikazivanje pogrešnog rezultata pod određenim uvjetima. Razmatrani kod je objavljen 2010. godine i prikupio je više od tisuću preporuka, a također je bio u mnoge projekte i pojavljuje se u repozitorijima na GitHubu oko 7 tisuća puta. Zanimljivo je da grešku nisu otkrili korisnici koji su kopirali taj kod u svoje projekte, već izvorni autor savjeta.
Razmatrani kod je vršio pretvorbu veličine u bajtima u čitljivi oblik, na primjer, 110592 se pretvara u '110.6 kB' ili '108.0 KiB'. Kod je predložen kao optimizirani uz pomoć logaritama, ranija verzija savjeta, u kojem se veličina određivala na osnovu uzastopnog dijeljenja izvorne vrijednosti unutar petlje na 1018, 1015, 1012, 1019,
106, 103 i 100, sve dok je djelitelj veći od izvorne vrijednosti u bajtima. Zbog nepravilnih izračuna u optimiziranoj verziji (prelivanje long vrijednosti) rezultat obrade vrlo velikih brojeva (eksabajt) nije bio točan.
Autor savjeta također je pokušao skrenuti pažnju na problem kopiranja primjera bez navođenja izvora i bez naznake licence. Prema ranije 46% programera je kopiralo kod sa StackOverflow-a bez navođenja autora, 75% nije znalo da se kod distribuira pod CC BY-SA licencom, a 67% nije znalo što to podrazumijeva u vezi s navođenjem autora.
Po drugog istraživanja, kopiranje primjera koda povezano je ne samo s rizikom od grešaka u kodu, već i sa sigurnosnim propustima. Na primjer, analizirajući 72483 primjera koda na C++ na StackOverflow-u, istraživači su otkrili ozbiljne sigurnosne propuste u 69 primjera (što čini 0,09%), koji su uvršteni na popis najpopularnijih preporuka. Nakon analize prisutnosti ovog koda na GitHub-u, otkriveno je da ranjivi kod kopiran sa StackOverflow-a postoji u 2859 projekata.
Izvor: opennet.ru
