Najbolj priljubljen primer kode Java na StackOverflow ima napako

Najbolj popularen Primer kode Java, objavljen na StackOverflow, izkazalo se je z napako, ki pod določenimi pogoji povzroči napačen rezultat. Zadevna koda je bila objavljena leta 2010 in je zbrala več kot tisoč priporočil in je bila tudi kopirano v številnih projektih in se v repozitorijih na GitHubu pojavi približno 7 tisočkrat. Omeniti velja, da napake niso odkrili uporabniki, ki so kopirali to kodo v svoje projekte, temveč prvotni avtor nasveta.

Zadevna koda je pretvorila velikost bajtov v berljivo obliko, na primer pretvorila 110592 v "110.6 kB" ali "108.0 KiB". Koda je bila predlagana kot logaritemsko optimizirana različica predhodno predlaganega nasveta, v katerem je bila vrednost določena na podlagi zaporedne delitve prvotne vrednosti v zanki s 1018, 1015, 1012, 1019.
106, 103 in 100, če je delitelj večji od prvotne vrednosti bajta. Zaradi površih izračunov v optimizirani različici (dolgo prelivanje vrednosti) rezultat pri obdelavi zelo velikih števil (eksabajtov) ni ustrezal realnosti.

Avtor nasveta je poskušal opozoriti tudi na problem kopiranja primerov brez navedbe vira in brez navedbe licence. Po prejšnjih podatkih izvedenih raziskav 46 % razvijalcev je kopiralo kodo iz StackOverflow brez pripisa, 75 % jih ni vedelo, da je bila koda licencirana pod CC BY-SA, 67 % pa jih ni vedelo, da to zahteva pripis.

Na Glede na Po drugi študiji kopiranje primerov kode ne vključuje le tveganja napak v kodi, ampak tudi ranljivosti. Na primer, po analizi 72483 primerov kode C++ na StackOverflow so raziskovalci odkrili resne ranljivosti v 69 primerih (kar je 0.09%), ki so vključeni na seznam najbolj priljubljenih priporočil. Po analizi prisotnosti te kode na GitHubu je bilo razkrito, da je bila ranljiva koda, kopirana iz StackOverflow, prisotna v 2859 projektih.

Vir: opennet.ru

Dodaj komentar