Det mest populære Java-kodeeksempel på StackOverflow viste sig at have en fejl

Det mest populære Java-kodeeksempel, offentliggjort på StackOverflow, vist sig at have en fejl, der fører til, at der under bestemte betingelser vises et forkert resultat. Den pågældende kode blev offentliggjort i 2010 og har fået over tusinde anbefalinger samt er kopieret til mange projekter og findes i repositories på GitHub omkring 7.000 gange. Det er bemærkelsesværdigt, at fejlen ikke blev opdaget af brugerne, der kopierede denne kode til deres projekter, men af den oprindelige forfatter af rådet.

Den pågældende kode konverterede størrelsen på byte til en læsbar form, for eksempel konverterede 110592 til «110.6 kB» eller «108.0 KiB». Koden blev foreslået som en optimeret version ved hjælp af logaritmer af en tidligere foreslået metode, hvor størrelsen blev bestemt ved sekventiel division af den oprindelige værdi i en løkke med 1018, 1015, 1012, 1019,
106, 103 og 100, indtil deleren var større end den oprindelige værdi i bytes. På grund af unøjagtige beregninger i den optimerede version (overløb af long-værdien) svarede resultatet ved behandling af meget store tal (exabyte) ikke til virkeligheden.

Rådgiveren forsøgte også at gøre opmærksom på problemet med at kopiere eksempler uden at angive kilden og uden at angive licens. Ifølge tidligere gennemførte undersøgelser kopierede 46% af udviklerne koden fra StackOverflow uden at angive forfatteren, 75% vidste ikke, at koden blev udgivet under CC BY-SA-licensen, og 67% vidste ikke, at dette medførte, at forfatterskabet skulle angives.

Ifølge data ifølge en anden undersøgelse er kopiering af kodeeksempler ikke kun forbundet med risikoen for fejl i koden, men også for sårbarheder. For eksempel, ved at analysere 72483 kodeeksempler på C++ på StackOverflow, afslørede forskerne alvorlige sårbarheder i 69 eksempler (hvilket udgør 0,09%), der er blandt de mest populære anbefalinger. Efter at have analyseret findes af denne kode på GitHub, blev det afsløret, at sårbar kode kopieret fra StackOverflow er til stede i 2859 projekter.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster