Najbolj priljubljen primer Java kode na StackOverflow se je izkazal za napačnega

Najbolj priljubljen primer Java kode, objavljen na StackOverflow, se je izkazal za napako, ki pri določenih pogojih povzroča napačen izpis. Obravnavana koda je bila objavljena leta 2010 in je prejela več kot tisoč priporočil ter bila kopirana v mnoge projekte in se pojavlja v repozitorijih na GitHubu približno 7000-krat. Zanimivo je, da napake niso odkrili uporabniki, ki so to kodo kopirali v svoje projekte, temveč izvirni avtor nasveta.

Obravnavana koda je izvajala pretvorbo velikosti v bajtih v berljivo obliko, na primer 110592 je pretvorila v „110.6 kB“ ali „108.0 KiB“. Koda je bila predlagana kot optimizirana z uporabo logaritmov različica prej predlaganega nasveta, v katerem se je količina določila na podlagi zaporednega deljenja izvirne vrednosti v ciklu na 1018, 1015, 1012, 1019,
106, 103 in 100, dokler je bil delitelj večji od izvirne vrednosti v bajtih. Zaradi netočnih izračunov v optimizirani različici (prekoračitev dolgega vrednosti) rezultat obdelave zelo velikih števil (eksabajtov) ni bil pravilen.

Avtor nasveta je prav tako poskušal opozoriti na problem kopiranja primerov brez navedbe vira in brez navedbe licence. Po podatkih prej izvedenega raziskovanja 46% razvijalcev je kopiralo kodo s StackOverflow brez navedbe avtorja, 75% ni vedelo, da je koda razširjena pod licenco CC BY-SA, in 67% ni vedelo, da to pomeni potrebo po navedbi avtorstva.

Po podatkov druge raziskave, kopiranje primerov kode ni povezano le z tveganjem za napake v kodi, temveč tudi z ranljivostmi. Na primer, z analizo 72483 primerov kode v C++ na StackOverflow so raziskovalci odkrili resne ranljivosti v 69 primerih (kar pomeni 0,09%), ki so vključeni na seznam najbolj priljubljenih priporočil. Po analizi prisotnosti te kode na GitHubu se je izkazalo, da ranljiva koda, kopirana iz StackOverflow, obstaja v 2859 projektih.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster