Nejpopulárnější příklad Java kódu na StackOverflow se ukázal být chybou

Nejpopulárnější příklad Java kódu, publikovaného na StackOverflow, se ukázal být chybou, která za určitých podmínek vede k nesprávnému výsledku. Zmiňovaný kód byl zveřejněn v roce 2010 a získal více než tisíc doporučení, a také byl zkopírován do mnoha projektů a objevuje se v repozitářích na GitHubu přibližně 7 tisíckrát. Zajímavé je, že chybu nenalezli uživatelé kopírující tento kód do svých projektů, ale původní autor rady.

Zmiňovaný kód prováděl převod velikosti v bajtech na čitelnou formu, například 110592 převáděl na „110,6 kB“ nebo „108,0 KiB“. Kód byl navržen jako optimalizovaný pomocí logaritmů varianty dříve navržené rady, kde se hodnota určovala na základě sekvenčního dělení původní hodnoty v cyklu na 1018, 1015, 1012, 1019,
106, 103 a 100, dokud byl dělitel větší než původní hodnota v bajtech. Kvůli nedbalým výpočtům v optimalizované variantě (přetečení hodnoty long) výsledek práce při zpracování velmi velkých čísel (exabajtů) neodpovídal skutečnosti.

Autor rady se také pokusil upozornit na problém kopírování příkladů bez odkazu na zdroj a bez uvedení licence. Podle dříve prováděného výzkumu 46 % vývojářů zkopírovalo kód ze StackOverflow bez uvedení autora, 75 % nevědělo, že kód je šířen pod licencí CC BY-SA, a 67 % nevědělo, co to obnáší.

Podle informací Podle jiného výzkumu je kopírování příkladů kódu spojeno nejen s rizikem chyb v kódu, ale i s tím, že obsahují zranitelnosti. Například analýzou 72483 příkladů kódu na C++ na StackOverflow výzkumníci zjistili závažné zranitelnosti ve 69 příkladech (což představuje 0,09 %), které patří do seznamu nejpopulárnějších doporučení. Při následné analýze přítomnosti tohoto kódu na GitHubu bylo zjištěno, že zkopírovaný ze StackOverflow zranitelný kód je přítomen v 2859 projektech.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster