L'esempiu più populari di codice Java in StackOverflow hà un errore

U più pupulare Esempiu di codice Java, publicatu nantu à StackOverflow, finì cù un errore chì porta à a pruduzzioni di un risultatu incorrectu in certi cundizioni. U codice in quistione hè statu publicatu in u 2010 è hà accumulatu più di mille cunsiglii, è hè statu ancu copiatu in parechji prughjetti è appare in repository in GitHub circa 7 mila volte. Hè nutate chì l'errore hè statu truvatu micca da l'utilizatori chì copianu stu codice in i so prughjetti, ma da l'autore originale di u cunsigliu.

U codice in quistione hà cunvertitu a dimensione di byte in una forma leggibile, per esempiu cunvertisce 110592 à "110.6 kB" o "108.0 KiB". U codice hè statu prupostu cum'è una versione logaritmica ottimizzata di i cunsiglii pruposti prima, in quale u valore hè statu determinatu basatu annantu à a divisione sequenziale di u valore originale in un ciclu da 1018, 1015, 1012, 1019.
106, 103 è 100, sempre chì u divisore hè più grande di u valore di byte originale. A causa di i calculi sloppy in a versione ottimisata (long value overflow), u risultatu in u processu di numeri assai grande (exabytes) ùn currisponde à a realità.

L'autore di u cunsigliu hà ancu pruvatu à attirà l'attenzione nantu à u prublema di copià esempi senza cità a fonte è senza indicà a licenza. Sicondu dati prima hà fattu ricerca U 46% di i sviluppatori hà copiatu u codice da StackOverflow senza attribuzione, u 75% ùn era micca cunnisciutu chì u codice era licenziatu sottu CC BY-SA, è u 67% ùn era micca cuscente chì questu hè necessariu attribuzione.

By datu Sicondu un altru studiu, l'esempi di codici di copia ùn implica micca solu u risicu di l'errore in u codice, ma ancu i vulnerabili. Per esempiu, dopu l'analisi di 72483 esempi di codice C++ nantu à StackOverflow, i circadori identificanu vulnerabili serii in 69 esempi (chì hè 0.09%) inclusi in a lista di i cunsiglii più populari. Dopu avè analizatu a prisenza di stu codice in GitHub, hè statu revelatu chì u codice vulnerabile copiatu da StackOverflow era presente in i prughjetti 2859.

Source: opennet.ru

Add a comment