Vinsælasta dæmið um Java kóða á StackOverflow er með villu

Vinsælasta Java kóða dæmi, birt á StackOverflow, reyndist vera með villu sem leiðir til úttaks rangrar niðurstöðu við ákveðnar aðstæður. Kóðinn sem um ræðir var settur árið 2010 og hefur safnað meira en þúsund meðmælum og hefur einnig verið afritað í mörgum verkefnum og birtist í geymslum á GitHub um 7 þúsund sinnum. Það er athyglisvert að villan fannst ekki af notendum sem afrituðu þennan kóða inn í verkefni sín, heldur af upprunalegum höfundi ráðleggingarinnar.

Kóðinn sem um ræðir breytti bætastærðinni í læsilegt form, til dæmis umbreyti 110592 í "110.6 kB" eða "108.0 KiB". Kóðinn var lagður til sem logaritma-bjartsýni útgáfa af áður fyrirhugaðri ráðgjöf, þar sem gildið var ákvarðað út frá raðskiptingu upprunalega gildisins í lykkju með 1018, 1015, 1012, 1019.
106, 103 og 100, svo framarlega sem deilirinn er stærri en upprunalega bætagildið. Vegna slælegra útreikninga í fínstilltu útgáfunni (langt gildisflæði) samsvaraði niðurstaðan við úrvinnslu mjög stórra fjölda (exabæta) ekki raunveruleikanum.

Höfundur ráðsins reyndi einnig að vekja athygli á því vandamáli að afrita dæmi án þess að vitna í heimildina og án þess að tilgreina leyfið. Samkvæmt eldri gögnum stundaði rannsóknir 46% þróunaraðila afrituðu kóða frá StackOverflow án tilvísunar, 75% vissu ekki að kóðinn væri með leyfi samkvæmt CC BY-SA og 67% vissu ekki að þetta krafðist tilvísunar.

Á Samkvæmt Samkvæmt annarri rannsókn felur afritun kóðadæma ekki aðeins í sér hættu á villum í kóðanum, heldur einnig veikleikum. Til dæmis, eftir að hafa greint 72483 C++ kóða dæmi á StackOverflow, greindu vísindamenn alvarlega veikleika í 69 dæmum (sem er 0.09%) á listanum yfir vinsælustu ráðleggingarnar. Eftir að hafa greint tilvist þessa kóða á GitHub kom í ljós að viðkvæmi kóðinn sem afritaður var frá StackOverflow var til staðar í 2859 verkefnum.

Heimild: opennet.ru

Bæta við athugasemd