0958_Release_7_19_ru/image1-d83377c0bb97c038f744bf28d7ca8a35.png


Недавно вышла новая версия PVS-Studio – 7.19. В этой заметке расскажем, что нового появилось в анализаторе, какие разделы документации мы улучшили; кроме того — что почитать, посмотреть и… во что поиграть.


Улучшения


Поддержка Unreal Engine 5


С помощью PVS-Studio можно анализировать проекты на основе Unreal Engine 5. В целом анализ выполняется так же, как и для Unreal Engine 4. Разница описана в документации.


Баг в Unreal Engine 5: Unable to find PVS-Studio


В Unreal Engine 5 есть баг, из-за которого Unreal Build Tool не находит PVS-Studio по стандартному пути установки. Pull request для исправления этой проблемы уже сделан, фикс войдёт в одну из следующих версий движка.


Временное решение проблемы описано в документации.


Работа с компиляторами QNX


В C++ анализаторе улучшили работу с компиляторами QNX:


  • лучше определяем целевую платформу компиляторов QNX Momentics QCC. Это позволило сократить количество ложных срабатываний при анализе кода под QNX;
  • поддержали последние версии компилятора QNX.

Плагин PVS-Studio для SonarQube


Плагин PVS-Studio для SonarQube теперь поддерживает JSON отчёты. Так как отчёты PVS-Studio в формате JSON доступны на всех платформах, это упрощает кроссплатформенные сценарии работы.


Утилита оповещения разработчиков (blame-notifier)


Утилита blame-notifier используется для оповещения разработчиков и менеджеров об ошибках в коде, которые нашёл PVS-Studio. Это реализовано через рассылку писем с предупреждениями анализатора.


Теперь к таким письмам можно прикреплять файлы (например, полный отчёт анализатора), а также изменять тему письма.


Документацию по утилите blame-notifier можно найти здесь.


Документация


Отчёты анализатора и утилиты конвертации


Результаты анализа PVS-Studio с помощью специальных утилит (PlogConverter.exe, plog-converter) можно конвертировать в различные форматы. В одном документе мы описали:


  • форматы, в которые можно сконвертировать отчёты, и назначение каждого из них;
  • утилиты конвертации отчётов и флаги запуска;
  • примеры команд конвертации.

Найти эту информацию теперь можно здесь.


Unreal Engine


Мы обновили документацию по использованию Unreal Engine и PVS-Studio. В ней описано:


  • как проверять проекты из IDE и из командной строки;
  • как внедрить анализатор в проект, чтобы не видеть предупреждений на legacy-код;
  • как исключать файлы и директории из анализа;
  • особенности использования анализатора с разными версиями движка.

Документация доступна по ссылке.


Новые диагностики


C, C++


  • V834. Incorrect type of a loop variable. This leads to the variable binding to a temporary object instead of a range element.
  • V835. Passing cheap-to-copy argument by reference may lead to decreased performance.
  • V1083. Signed integer overflow in arithmetic expression. This leads to undefined behavior.
  • V1084. The expression is always true/false. The value is out of range of enum values.
  • V1085. Negative value is implicitly converted to unsigned integer type in arithmetic expression.

C#


  • V3175. Locking operations must be performed on the same thread. Using 'await' in a critical section may lead to a lock being released on a different thread.
  • V3176. The '&'= or '|=' operator is redundant because the right operand is always true/false.
  • V5622. OWASP. Possible XPath injection. Potentially tainted data is used in the XPath expression.
  • V5623. OWASP. Possible open redirect vulnerability. Potentially tainted data is used in the URL.

Посмотреть, почитать и… поиграть


Посмотреть


Heisenbug 2021: о безопасности


Прошлой осенью мы были на конференции Heisenbug 2021 Moscow, где разговаривали о безопасности, SAST-решениях, taint-анализе и не только.


Недавно на YouTube выложили записи докладов с конференции. Вот ссылки на те, где мы принимали участие:



Life EXE: чистим исходный код проекта на Unreal Engine 5 с помощью PVS-Studio


Автор канала Life EXE рассказывает про работу с проектами на Unreal Engine. В одном из последних видео он на примере PVS-Studio показал, как статический анализ может быть полезен для проектов на основе Unreal Engine.


Посмотреть видео можно здесь.


Почитать


Улучшения PVS-Studio


Мы не только улучшаем анализатор, но и рассказываем, что конкретно, как и зачем делаем. Почитать об этом можно в статьях:



Проверка кода проектов


Продолжаем проверять качество кода Open Source проектов. Почитать о том, какие интересные ошибки удалось найти, можно в этих заметках:



Поиграть


Мы сделали игру, в которой можно проверить свою внимательность и поискать ошибки в коде. Пока доступна версия с ошибками в коде только на C++. Интересно поиграть во что-то подобное для C#? Пишите в комментариях. :)


Саму игру найти можно здесь.


Попробовать PVS-Studio 7.19


Загрузить последнюю версию анализатора можно здесь. Если у вас нет лицензионного ключа, не забудьте запросить триал.


Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Sergey Vasiliev. PVS-Studio 7.19: what's new?.

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