La plej populara ekzemplo de Java-kodo sur StackOverflow havas eraron

La plej populara Ekzemplo de Java kodo, publikigita sur StackOverflow, finiĝis kun eraro kondukanta al la eligo de malĝusta rezulto sub certaj kondiĉoj. La koncerna kodo estis afiŝita en 2010 kaj amasigis pli ol mil rekomendojn, kaj ankaŭ estis kopiita en multaj projektoj kaj aperas en deponejoj sur GitHub ĉirkaŭ 7 mil fojojn. Estas rimarkinde, ke la eraro estis trovita ne de uzantoj kopiantaj ĉi tiun kodon en siajn projektojn, sed de la origina aŭtoro de la konsilo.

La koncerna kodo konvertis la bajtan grandecon en legeblan formon, ekzemple konvertante 110592 al "110.6 kB" aŭ "108.0 KiB". La kodo estis proponita kiel logaritm-optimumigita versio de la antaŭe proponita konsilo, en kiu la valoro estis determinita surbaze de la sinsekva divido de la origina valoro en buklo de 1018, 1015, 1012, 1019.
106, 103 kaj 100, kondiĉe ke la dividanto estas pli granda ol la origina bajta valoro. Pro malzorgaj kalkuloj en la optimumigita versio (longvalora superfluo), la rezulto dum prilaborado de tre grandaj nombroj (eksabajtoj) ne kongruis al la realo.

La aŭtoro de la konsilo ankaŭ provis atentigi la problemon kopii ekzemplojn sen citi la fonton kaj sen indiki la permesilon. Laŭ pli fruaj datumoj faris esploron 46% de programistoj kopiis kodon de StackOverflow sen atribuo, 75% ne konsciis, ke la kodo estas licencita laŭ CC BY-SA, kaj 67% ne konsciis, ke tio postulas atribuon.

Por donita Laŭ alia studo, kopii kodekzemplojn implikas ne nur la riskon de eraroj en la kodo, sed ankaŭ vundeblecojn. Ekzemple, post analizo de 72483 C++-kodekzemploj sur StackOverflow, esploristoj identigis gravajn vundeblecojn en 69 ekzemploj (kio estas 0.09%) inkluzivitaj en la listo de la plej popularaj rekomendoj. Analizinte la ĉeeston de ĉi tiu kodo sur GitHub, estis rivelita, ke la vundebla kodo kopiita de StackOverflow ĉeestis en 2859 projektoj.

fonto: opennet.ru

Aldoni komenton