Это не так работает. Сейчас в целом идёт тренд на стандартизацию и регулирование процессов безопасной разработки ПО. ГОСТ про статический анализ – это небольшая часть этого процесса. Будут вводиться новые требования и стандарты. Например, буквально вчера 20.12.2024 введён в действие обновлённая версия ГОСТ Р 56939-2024 – Защита информации. Разработка безопасного программного обеспечения. Общие требования.
Странные мысли. Мы 15 лет успешно разрабатываем и продаём PVS-Studio без всяких ГОСТ. Однако, раз уж стандарт появился, странно не обратить на это внимание и не доработать напильником PVS-Studio, чтобы ему соответствовать. Благо хоть это и потребовало несколько месяцев доработок, ничего сверх особенного не пришлось делать. Анализатор уже был мощен, просто нужно было например, классифицировать предупреждения по типу перечисленным там критических ошибок. Естественно такой классификации в инструменте до ГОСТ не существовало и не могло существовать.
Мне кажется, Вы не улавливаете суть анализа помеченных данных. По и отдельности процедуры-источники и процедуры-стоки чувствительных данных могут быть корректны. А при взаимодействии - нет.
Условно говоря, функция записи на диск не виновата, что с её помощью в файл записываете в открытом виде секретный пароль пользователя.
Первая диагностика V801 на тему микрооптимизаций, которая была реализована в PVS-Studio, как раз про копирования больших объектов :)
Кстати, есть и обратная – V835 (обнаружена функция, которая принимает параметр по ссылке на константный объект, когда эффективнее это делать по копии).
P.S. Мы называем это "микрооптимизациями", по причине, что статический анализатор, как правило не знает, часто используется какой-то код или нет. Для настоящей оптимизации нужен профайлер. Иногда, впрочем, пользователи писали, что заметно улучшили производительность, просто исправив код, на который указывал PVS-Studio этими самыми диагностиками.
V669. Анализатор обнаружил, что аргумент передается в функцию по ссылке, но не модифицируется в теле функции. Это может свидетельствовать о наличии ошибки.
Это не так работает. Сейчас в целом идёт тренд на стандартизацию и регулирование процессов безопасной разработки ПО. ГОСТ про статический анализ – это небольшая часть этого процесса. Будут вводиться новые требования и стандарты. Например, буквально вчера 20.12.2024 введён в действие обновлённая версия ГОСТ Р 56939-2024 – Защита информации. Разработка безопасного программного обеспечения. Общие требования.
Гм.. Раз была лицензия в конторе, так быть может основные ошибки уже были исправлены? :) Ну или вариант, код уже был качественным, что тоже бывает.
Странные мысли. Мы 15 лет успешно разрабатываем и продаём PVS-Studio без всяких ГОСТ. Однако, раз уж стандарт появился, странно не обратить на это внимание и не доработать напильником PVS-Studio, чтобы ему соответствовать. Благо хоть это и потребовало несколько месяцев доработок, ничего сверх особенного не пришлось делать. Анализатор уже был мощен, просто нужно было например, классифицировать предупреждения по типу перечисленным там критических ошибок. Естественно такой классификации в инструменте до ГОСТ не существовало и не могло существовать.
PVS-Studio в контексте РБПО: PVS-Studio соответствует требованиям ГОСТ Р 71207—2024 (статический анализ программного обеспечения).
Большой обзор PVS-Studio с точки зрения ГОСТ: PVS-Studio соответствует требованиям ГОСТ Р 71207—2024 (статический анализ программного обеспечения).
Это компилируется в C (хотя и с варнингом, GCC: incompatible integer to pointer conversion assigning to 'int *' from 'int' [-Wint-conversion]).
И не компилируется в C++. И это замечательно.
Спасибо.
P.S. У нас ещё есть "Бесплатное использование PVS-Studio студентами и преподавателями" :)
Возьмётесь? :)
Проверяем, но реже.
Проверка компилятора GCC 13 с помощью PVS-Studio.
Проверка компилятора GCC 10 с помощью PVS-Studio.
Мне кажется, Вы не улавливаете суть анализа помеченных данных. По и отдельности процедуры-источники и процедуры-стоки чувствительных данных могут быть корректны. А при взаимодействии - нет.
Условно говоря, функция записи на диск не виновата, что с её помощью в файл записываете в открытом виде секретный пароль пользователя.
Taint-анализ (анализ помеченных данных, taint checking).
Нет. Это выходит далеко за пределы методологии статического анализа кода.
А теперь все 100 больших и маленьких багов в DPDK!
Продолжаем наслаждаться. DPDK: 100 больших и маленьких багов.
А вот и обещанная статья "Поиск ошибок в юнит-тестах".
Да
Но не покрыт :)
P.S. Про юнит-тесты в DPDK отдельная земетка скоро будет :)
Хм.. Место для подумать, спасибо.
Движок habr для кода умный там, где не надо :)
Он схлопывает две пустые строчки в одну, поэтому не удаётся показать лишнюю пустую строчку в коде, про которою идёт речь. Она здесь:
Как вариант можно у нас в блоге посмотреть статью, там как показан так, как надо.
Первая диагностика V801 на тему микрооптимизаций, которая была реализована в PVS-Studio, как раз про копирования больших объектов :)
Кстати, есть и обратная – V835 (обнаружена функция, которая принимает параметр по ссылке на константный объект, когда эффективнее это делать по копии).
P.S. Мы называем это "микрооптимизациями", по причине, что статический анализатор, как правило не знает, часто используется какой-то код или нет. Для настоящей оптимизации нужен профайлер. Иногда, впрочем, пользователи писали, что заметно улучшили производительность, просто исправив код, на который указывал PVS-Studio этими самыми диагностиками.
V669. Анализатор обнаружил, что аргумент передается в функцию по ссылке, но не модифицируется в теле функции. Это может свидетельствовать о наличии ошибки.