Najpopularniji primjer Java koda na StackOverflowu pokazao se s greškom

Najpopularniji primjer Java koda, objavljenog na StackOverflow-u, se pokazao 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 kopiran 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 provedenom istraživanju 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 podacima 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

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster