Cele mai populare , publicat pe StackOverflow, cu o eroare care duce la ieșirea unui rezultat incorect în anumite condiții. Codul în cauză a fost postat în 2010 și a acumulat peste o mie de recomandări și a fost de asemenea în multe proiecte și apare în depozitele de pe GitHub de aproximativ 7 mii de ori. Este de remarcat faptul că eroarea a fost găsită nu de utilizatorii care copiau acest cod în proiectele lor, ci de autorul original al sfatului.
Codul în cauză a convertit dimensiunea octetului într-o formă care poate fi citită, de exemplu, conversia 110592 în „110.6 kB” sau „108.0 KiB”. Codul a fost propus ca o versiune optimizată în logaritm a sfatului propus anterior, în care valoarea a fost determinată pe baza împărțirii secvențiale a valorii originale într-o buclă cu 1018, 1015, 1012, 1019.
106, 103 și 100, atâta timp cât divizorul este mai mare decât valoarea inițială a octetului. Din cauza calculelor neglijente în versiunea optimizată (depășirea valorii lungi), rezultatul la procesarea unor numere foarte mari (exaocteți) nu corespundea realității.
Autorul sfatului a încercat să atragă atenția și asupra problemei copierii exemplelor fără a cita sursa și fără a indica licența. Conform datelor anterioare 46% dintre dezvoltatori au copiat codul din StackOverflow fără atribuire, 75% nu au știut că codul este licențiat sub CC BY-SA și 67% nu au știut că acest lucru necesită atribuire.
Pe Potrivit unui alt studiu, copierea exemplelor de cod implică nu numai riscul de erori în cod, ci și vulnerabilități. De exemplu, după ce au analizat 72483 de exemple de cod C++ pe StackOverflow, cercetătorii au identificat vulnerabilități grave în 69 de exemple (care este 0.09%) incluse în lista celor mai populare recomandări. După ce am analizat apoi prezența acestui cod pe GitHub, a fost dezvăluit că codul vulnerabil copiat din StackOverflow a fost prezent în 2859 de proiecte.
Sursa: opennet.ru
