Flipper Zero — швейцарский нож для гиков и пентестеров с открытым исходным кодом. Так получилось, что пути этого проекта и анализатора PVS-Studio пересеклись. Философский вопрос: начинать ли проверять проект, зная, что авторы проекта уже исправляют ошибки? Попробуем.
Топ-10 ошибок в C++ проектах за 2021 год
На улице мороз, ёлка наряжена, мандарины разложены. Дело идёт к Новому году, а значит — время рассмотреть самые интересные срабатывания, найденные C++ анализатором PVS-Studio в 2021 году.
1000 глаз, которые не хотят проверять код открытых проектов
Есть такой миф, что открытое программное обеспечение более качественное и безопасное, чем закрытое. Много раз это обоснованно ставилось под сомнение. Существует примеры, когда в открытом коде находили эпичные уязвимости, которые скрывались от разработчиков и пользователей долгие годы. Я считаю, что качество проекта зависит от того, как руководители разработки построили процесс и какие методологии/инструменты используются, а не от того, открыт или закрыт проект.
Тем не менее по-прежнему живо поверье, что открытый проект — это хорошо. Мол, тысячи глаз людей могут изучать код, и кто-то да заметит ошибку. Мысль развивать не буду, думаю, вы понимаете, что я имею в виду.
Третья проверка Umbraco статическим анализатором PVS-Studio
6 лет назад была написана первая статья про проверку проекта с помощью анализатора PVS-Studio для C#. Мы решили оглянуться назад и вновь вернуться туда, откуда всё начиналось – к анализу исходного кода Umbraco CMS.
PVS-Studio 7.16, взятие рубежей: MISRA C, Visual Studio 2022, .NET 6
Последний релиз в уходящем 2021 году закрывает сразу несколько важных задач, поставленных перед командой PVS-Studio. Добавлена поддержка Visual Studio 2022, платформы .NET 6 и C# 10.0. Для стандарта MISRA C реализованы все диагностики категории Mandatory.
В чём проблемы первого отчёта статического анализатора и как их исправить?
Основная цель статического анализатора – найти и показать ошибки в коде, чтобы вы могли их исправить. Однако показать ошибки — это не так просто, как кажется на первый взгляд. Есть ряд проблем, с которыми сталкиваются пользователи, особенно новые пользователи. В этой статье я расскажу про эти проблемы и про то, как с ними можно бороться.
Есть ли баги в маленьких проектах, или как PVS-Studio проверял Blend2D
Мы часто проверяем большие проекты, потому что в них проще найти ошибки. А что же PVS-Studio сможет найти в небольшом проекте? Мы взяли Blend2D – библиотеку для векторной 2D-графики – и проверили своим анализатором. Предлагаем ознакомиться с тем, что из этого вышло.
Введение
Ни для кого не секрет, что в больших проектах всегда легче находить интересные ошибки. Это обусловлено не только простым рассуждением "больше кода – больше ошибок", но и тем, что с ростом кодовой базы растёт и плотность ошибок. Поэтому и проверять мы любим большие проекты, чтобы потом порадовать себя и читателя разнообразием "жирнющих" и заковыристых ошибок и опечаток. Да и в целом всегда интересно поковыряться в огромном проекте с кучей зависимостей, legacy и прочих вкусняшек.
В связи с этим наблюдением, я захотел отойти от нашей традиции брать большие проекты для статьи. Решил взять небольшой проект и посмотреть, что в нём сможет найти PVS-Studio. Мой выбор пал на Blend2D. Я проверил ветку master, коммит c484790.
Проверка Chromium спустя три года. Ну и как оно?
Стряхиваем пыль с нашего нерегулярного цикла статей о проверке проекта Chromium. Посмотрим, как обстоят дела с качеством кода в свежем релизе популярнейшего браузера-конструктора, а заодно проверим в деле новейшие функции анализатора PVS-Studio.
Статья для тех, кто как и я не понимает, зачем нужен std::common_type
В данной статье мы рассмотрим, зачем в стандартной библиотеке нужна конструкция для вывода общего типа, как она реализована и как она работает.
Вызов виртуальных функций в конструкторах и деструкторах (C++)
В разных языках программирования поведение виртуальных функций отличается, когда речь заходит о конструкторах и деструкторах. Неправильное использование виртуальных функций – это классическая ошибка при разработке на языке С++, которую мы разберём в этой статье.
Разнообразие ошибок в C# коде на примере CMS DotNetNuke: 40 вопросов к качеству
Сегодня мы вновь говорим о качестве C# кода и разнообразии возможных ошибок. На нашем операционном столе – CMS DotNetNuke, в исходный код которой мы и залезем. И лучше сразу заварите себе кофе...
Спасибо, Марио, но код стоит поправить – проверка TheXTech
Здорово, когда энтузиастам-разработчикам удаётся сделать работающий клон известной игры. Ещё лучше, когда находятся люди, готовые продолжить развитие таких проектов! В этой статье с помощью PVS-Studio мы проверим TheXTech – открытую реализацию игры по вселенной Super Mario.
Прокачка статического анализа проектов на Unreal Engine 4 и проверка автосимулятора Carla
Одним из механизмов статического анализа является аннотирование методов популярных библиотек. Аннотации позволяют обладать большей информацией при диагностировании ошибок в коде. Впечатляющий свободный проект на С++ CARLA помог нам внедрить этот механизм. Впоследствии симулятор стал целью для проверки улучшенным статанализатором PVS-Studio.
Проверяем качество кода в проектах .NET Foundation: LINQ to DB
.NET Foundation – независимая организация, основанная Microsoft с целью поддержки open source проектов на платформе DotNet. Под их крылом на данный момент собралось множество библиотек, некоторые из которых уже проходили проверку анализатором PVS-Studio. Следующим проектом для проверки анализатором будет LINQ to DB.
Проверяем эмулятор RPCS3 с помощью PVS-Studio
RPCS3 – интересный проект, который эмулирует консоль PS3. Он активно развивается: недавно была новость о том, что он научился запускать все игры из своего каталога. Это хороший повод для проверки – посмотрим, какие ошибки остались после исправлений.
Слава баг-репортам, или как мы сократили время анализа проекта пользователя с 80 до 4 часов
Работа в поддержке часто воспринимается как что-то негативное. Напрасно! Сегодня мы постараемся взглянуть на неё под иным углом. За основу возьмём реальное общение: больше 100 писем в переписке, исключения, анализ, который не завершается за трое суток...
Как выбрать инструмент статического анализа
Использование инструментов для повышения и контроля качества кода может стать важным фактором успеха при реализации сложных программных проектов. Например, к таким инструментам относятся статические анализаторы. На данный момент они доступны в большом количестве: от бесплатных с открытым исходным кодом до кросс-функциональных коммерческих решений. С одной стороны – есть из чего выбирать, с другой – поиск подходящего вашей команде инструмента может стать настоящей исследовательской работой.
Брутальный Protocol Buffers от Google vs статический анализ кода
Protocol Buffers — это очень популярный, крутой и качественный проект, развиваемый в основном компанией Google. Это хороший вызов для статического анализатора кода PVS-Studio. Найти хоть что-то — это уже достижение. Попробуем.
PVS-Studio ищет баги в проекте DuckStation
Мы часто проверяем ретро-игры. Многие наши разработчики находят интересные для себя проекты и ностальгируют при их изучении. Однако, ретро-игры нужно на чём-то запускать. В этот раз мы проверили проект, помогающий запускать старые игры на современном железе.
Как один разработчик PVS-Studio защищал баг в проверяемом проекте
Мы в PVS-Studio часто проверяем открытые проекты и пишем статьи об этом. Иногда при написании статьи случаются интересные ситуации или попадаются особенно эпичные ошибки, тогда хочется написать про это отдельную небольшую заметку. Сейчас совпали оба случая.