А вы знали, что в инструментах по поиску ошибок на Java тоже есть ошибки?


0 0

Разработчики статического анализатора PVS-Studio, который до недавнего времени искал ошибки и потенциальные уязвимости в коде на С, С++ и С#, выпустили новую версию продукта, способного обнаружить баги в Java проектах.

По традиции, автор статьи приводит примеры найденных ошибок с помощью PVS-Studio. Предвидя вопросы, сможет ли анализатор найти что-то в таких проектах как IntelliJ IDEA, SpotBugs и других известных инструментах по поиску ошибок в Java коде, в статье предлагается рассмотреть примеры ошибок разного типа из этих проектов.

Например, интересная опечатка из IntelliJ IDEA:

public synchronized boolean isIdentifier(@NotNull String name,
                                         final Project project) {
  if (!StringUtil.startsWithChar(name,'\'') &&
      !StringUtil.startsWithChar(name,'\"')) {
    name = "\"" + name;
  }
  if (!StringUtil.endsWithChar(name,'"') &&
      !StringUtil.endsWithChar(name,'\"')) {
    name += "\"";
  }
 ....
}

Данный фрагмент кода проверяет, что имя взято в одинарные или двойные кавычки. Если это не так, то двойные кавычки добавляются автоматически. Из-за опечатки, окончание имени проверяется только на наличие двойных кавычек. В результате, имя, взятое в одинарные кавычки, будет обработано некорректно.

Имя

'Abcd'

из-за добавления лишних двойных кавычек превратится в:

'Abcd'"

Интеграция анализатора в виде плагина может быть осуществима в различные сборочные системы такие, как Maven, Gradle, IntelliJ IDEA. Не обошли стороной и платформу контроля качества кода SonarQube и добавили поддержку языка Java в уже существующий плагин от PVS-Studio.

Помимо этого, разработчики не оставили без внимания С, С++ и С# направления, и внесли важные изменения в их развитие. Появилось много новых диагностик, а также усовершенствованы алгоритмы, позволяющие собирать и обрабатывать информацию, извлекаемую из синтаксического дерева. Сообщения и предупреждения анализатора теперь классифицируются не только согласно CWE, CERT, но и MISRA. Благодаря поддержке этих стандартов анализатор стало возможным эффективно использовать для улучшения безопасности, переносимости и надежности программ для встраиваемых систем.

Еще одной приятной новостью стало бесплатное использование PVS-Studio для всех контрибьюторов open-source проектов, хостящихся на GitHub или Bitbucket.

Подробнее о новой версии PVS-Studio – https://www.viva64.com/ru/b/0602/

Подробнее о других ошибках в Java коде – https://www.viva64.com/ru/b/0603/


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Паника, что-то случилось!!! Ничего не найдено в комментариях. Срочно нужно что-то добавить, чтобы это место не оставалось пустым.

Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне