It populêrste foarbyld fan Java-koade op StackOverflow hat in flater

De populêrste Foarbyld fan Java koade, publisearre op StackOverflow, it einige yn mei in flater dy't liedt ta de útfier fan in ferkeard resultaat ûnder bepaalde betingsten. De koade yn kwestje is pleatst yn 2010 en hat mear as tûzen oanbefellings sammele, en is ek kopiearre yn in protte projekten en ferskynt yn repositories op GitHub sawat 7 tûzen kear. It is opmerklik dat de flater net fûn waard troch brûkers dy't dizze koade kopiearje yn har projekten, mar troch de oarspronklike skriuwer fan it advys.

De koade yn kwestje konvertearre de bytegrutte yn in lêsbere foarm, bygelyks it konvertearjen fan 110592 nei "110.6 kB" of "108.0 KiB". De koade waard foarsteld as in logaritme-optimisearre ferzje fan it earder foarstelde advys, wêryn de wearde waard bepaald op basis fan 'e opfolgjende ferdieling fan' e orizjinele wearde yn in lus troch 1018, 1015, 1012, 1019.
106, 103 en 100, sa lang as de divisor grutter is as de oarspronklike bytewearde. Troch slordige berekkeningen yn 'e optimalisearre ferzje (lange wearde oerstreaming), kaam it resultaat by it ferwurkjen fan heul grutte oantallen (eksabytes) net oerien mei de realiteit.

De skriuwer fan it advys besocht ek omtinken te jaan oan it probleem fan it kopiearjen fan foarbylden sûnder de boarne te neamen en sûnder de lisinsje oan te jaan. Neffens eardere gegevens ûndersyk dien 46% fan ûntwikkelders kopiearre koade út StackOverflow sûnder attribúsje, 75% wie net bewust dat de koade wie lisinsje ûnder CC BY-SA, en 67% wie net bewust dat dit fereaske attribúsje.

By jûn Neffens in oare stúdzje giet it kopiearjen fan koadefoarbylden net allinich om it risiko fan flaters yn 'e koade, mar ek kwetsberens. Bygelyks, nei it analysearjen fan 72483 C++-koadefoarbylden op StackOverflow, identifisearren ûndersikers serieuze kwetsberens yn 69 foarbylden (dat is 0.09%) opnommen yn 'e list fan' e populêrste oanbefellings. Nei't doe de oanwêzigens fan dizze koade op GitHub analysearre waard, waard iepenbiere dat de kwetsbere koade kopiearre fan StackOverflow oanwêzich wie yn 2859 projekten.

Boarne: opennet.ru

Add a comment