Самый копируемый кусок Java-кода на StackOverflow содержит ошибку

Как оказалось, самый цитируемый кусок Java-кода на StackOverflow содержал ошибку, которую никто не замечал на протяжении девяти лет. Теперь баг обнаружил сам автор сниппета, Андреас Лундблад (Andreas Lundblad), Java-разработчик в Palantir и один из наиболее влиятельных членов сообщества StackOverflow.

Еще в научной статье 2018 года сниппет Лундблада был признан самым копируемым Java-кодом со StackOverflow, который использовался во множестве опенсорсных проектов. Так, аналитики подсчитали, что код был скопирован и внедрен более чем в 6000 Java-проектов на GitHub. Исходно этот сниппет был опубликован в качестве ответа на вопрос в сентябре 2010 года. Идея состояла в преобразовании 123 456 789 байт в удобочитаемый формат, например, 123,5 Мб.

На прошлой неделе Лундблад рассказал в блоге, что он обнаружил в коде ошибку: оказалось, после выхода упомянутой научной статьи он заметил, что неправильно преобразовал тогда число байт, и теперь подготовил исправленную, корректную версию сниппета.

К счастью, баг оказался достаточно тривиальным и в итоге мог привести лишь к возникновению небольших неточностей в оценках размера файла. Все могло бы закончиться гораздо хуже, если бы ошибка провоцировала появление проблем с безопасностью. В таком случае на исправление всех уязвимых из-за этого бага проектов могли бы уйти годы, так как многие разработчики вовсе не задумываются о возможных последствиях, когда копируют чужой код со StackOverflow. Кроме того, многие намерено копируют код без указания авторства и фактически скрывают ото всех, что внедрили в проект непроверенный код.

К примеру, осенью текущего года ИБ-исследователи подсчитали, что на GitHub можно найти 2859 проектов, в которых использовались заимствованные и опасно уязвимые фрагменты C++ кода со StackOverflow. Эксперты выделили и искали всего 69 таких проблемных кусков кода за последние 10 лет, и на деле таких ошибок может быть намного больше.

Мария Нефёдова: Блондинка, гик, книжный червь, синефил. Редактор ленты новостей; иногда автор Сцены.

Комментарии (2)

  • Задачка из ряда за полчасика на сообразительность. То, что этот код копируют и не видят ошибки тысячи, печалит и пугает.

    • Всеп смотрят на рейтинг ответа, видят много лайков, и думают что ответ очень хороший и 100 раз проверен.

Похожие материалы