0919_Release_7_17_ru/image1.png


С радостью представляем вам сводку новостей о первом релизе PVS-Studio в 2022 году. Сегодня поговорим об улучшениях в работе с Unreal Engine и ASP.NET Core проектами, новых диагностиках, а также о том, что интересного почитать и посмотреть.


Различные улучшения


Работа с файлами подавления для Unreal Engine проектов из IDE


Мы продолжаем улучшать сценарии работы с Unreal Engine проектами. Теперь с файлами подавления предупреждений можно работать через плагины PVS-Studio для Visual Studio и JetBrains Rider. Это позволит как более удобно выполнять baselining при внедрении анализатора, так и подавлять / сбрасывать подавление предупреждений уже после внедрения – при регулярной работе.


Более подробно про это можно почитать в документации.


Улучшение анализа ASP.NET Core проектов


В C# анализаторе был расширен список аннотаций методов из состава ASP.NET Core. Это позволит PVS-Studio лучше понимать, что происходит в коде, работающем с ASP.NET Core. Как следствие – находить больше проблем и выдавать меньше false positive срабатываний.


Поддержка компилятора C6000-CGT от Texas Instruments


В анализатор PVS-Studio для языков C и C++ добавлена поддержка проверки проектов, предназначенных для C6000-CGT – компилятора для встраиваемых систем от Texas Instruments. Кстати, полный список поддерживаемых PVS-Studio платформ и компиляторов можно посмотреть здесь.


Изменение алгоритма генерации хэш-сумм для файлов подавления в JSON-формате


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


Алгоритм поменялся в инструменте для анализа LLVM Compilation Database и трассировки вызовов (pvs-studio-analyzer), а также в конвертере отчётов (plog-converter). Работа с файлами старого формата поддерживается в режиме обратной совместимости. При необходимости пополнения файлов подавления мы рекомендуем перегенерировать их в новом формате.


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


C, C++


  • V1077. Constructor contains potentially uninitialized members.
  • V1078. An empty container is iterated. The loop will not be executed.
  • V2017. String literal is identical to variable name. It is possible that the variable should be used instead of the string literal.

C#


  • V3174. Suspicious subexpression in a sequence of similar comparisons.
  • V5617. OWASP. Assigning potentially negative or large value as timeout of HTTP session can lead to excessive session expiration time.
  • V5618. OWASP. Possible server-side request forgery. Potentially tainted data is used in the URL.

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


Во-первых, в конце года мы подводили итоги:



Во-вторых, составили список ресурсов, которые могут быть полезны для C++ и C# разработчиков:



Никуда не делись статьи про проверку проектов. Например, про .NET 6 и Flipper Zero. Любители теоретических публикаций могут почитать про эволюцию constexpr в C++ или про технологии анализа, используемые в PVS-Studio.


Напоследок напоминаю, что у нас есть YouTube-канал, который достаточно активно пополняется контентом – заходите посмотреть!


Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Sergey Vasiliev. PVS-Studio 7.17: Unreal Engine, ASP.NET Core, Texas Instruments.

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


  1. Maxim_Q
    14.02.2022 20:23

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


    1. AndrewSu
      14.02.2022 22:18
      +1

      Создайте в этих проектах в пуллреквесте задачу в github-actions в которой запускается PVS, а ключик к PVS вам дадут. Он для opensource бесплатен.


      1. Maxim_Q
        15.02.2022 14:14

        А можно по подробнее как это делать правильно? Может мини инструкция есть?


        1. AndrewSu
          15.02.2022 21:12
          +3

          Можете посмотреть как я сделал GitHub Actions в своём проекте. Но сборочный скрипт и установку зависимостей придётся делать для каждого проекта свою. В том же файле и другие анализаторы есть. Также, рекомендую эту статью от разработчиков PVS.

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


    1. foto_shooter Автор
      14.02.2022 22:20
      +1

      Добрый день!

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


      1. Maxim_Q
        14.02.2022 22:58

        Сейчас очень много всего завязано на мобильный телефон и очень хочется посмотреть проекты от самой ОС для телефона (LineageOS, Havoc-OS, crDroid) до самых популярных программ с сайта f-droid. т.е. хочется знать на сколько там все хорошо.