All streams
Search
Write a publication
Pull to refresh
612
14
Андрей Карпов @Andrey2008

Директор по развитию бизнеса

Send message
Спасибо за интерес к нашему продукту и пожеланиям.

По поводу автоматических правок. Таких планов нет. Автоматическими изменениями кода занимаются инструменты, осуществляющие рефакторинг или форматирование кода. Мы не развиваем инструмент в этом направлении. Мы сосредоточены именно на поиске потенциальных ошибок и потенциальных уязвимостей.

Говоря о правке ошибок, это возможно только для очень простых случаев. В результате, эта функциональность будет столь ограничена, что лучше вообще её не делать. Тем более всё равно слишком велик риск неправильного изменения кода и человек обязан участвовать в этом процессе.

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

А вашей команде спасибо за содействие при написании статьи и интерес к нашему продукту.

Не знаю ответа и предложить тоже затрудняюсь.

И действительно, что это я. Потенциальная уязвимость CWE ведь может стать уязвимостью CVE, а может ведь и не стать. Так что пофиг. :)

Только не надо тогда ля-ля про качество открытого кода.

Просто если в коммерческом софте ошибки встречаются, условно, по штуке на тысячу строк, то в опен-сорсе — штука на десять тысяч строк.

Это мнение и фантазии, не более того.

Эээ... это какое-то Ваше восприятие статьи :). Это не жалоба. Это фиксация примера, что открытость проекта сама по себе почти ничего не значит и борьба с вредным мифом. Личная обида? Вообще мимо. Я ржал, когда я понял, что за уведомление я получил :). Но раз испытал лёгкий шок, решил его зафиксировать в виде заметки.

Ну вот проверил 9 лет назад. И что? :)
Нельзя. Но это не значит, что возможность их видеть, так уж сильно влияет на качество.
Не так уж много, но проверяли. Подробности не расскажу в силу NDA. Ощущение: качество кода также варьируется, как и качество открытых проектов. Пруфов не будет, сорри. Вывод тот-же: от открытости почти ничего не зависит.

Ох. У V525 и так тяжёлая судьба :)

Кстати. В PVS-Studio 7.16 на 80% поддержан стандарт обеспечения безопасности и надёжности MISRA C. При этом полностью покрыта категория предупреждений Mandatory, а также большая часть категории Required.
См. PVS-Studio 7.16, взятие рубежей: MISRA C, Visual Studio 2022, .NET 6.
Жив. Пока мы сосредоточились на другом.
Документ навеял мысли повторить проверку Chromium :)
Проверка Chromium спустя три года. Ну и как оно?

специально для этого наглого гражданина напишу первую часть статьи, где все ваши мифы разрушу раз и навсегда. Заслужили, так заслужили.

Я так и не дождался этой обещанной статьи, поэтому написал собственную :)

Вызов виртуальных функций в конструкторах и деструкторах (C++)

Пока не изменилась. Использование машинного обучения в статическом анализе исходного кода программ.
Мы посмотрели на этот ControlFlag, думали может по него какую-то статью обзорную написать. Но там писать не про что. Для кода анализатора PVS-Studio (C++ ядро) выдал всего два бессмысленных сообщения вида:
template <typename F, std::enable_if_t<std::is_invocable_r_v<bool, F, const Ptree*> , int> = 0>
[[nodiscard]] bool FindIf(const Ptree* tree, F f)
{
  while (tree != nullptr)
  {
    if (f(tree))
      return true;
    if (tree->IsLeaf())
      return false;
    if (FindIf(tree->Car(), f)) 
      return true;              // <=
    tree = tree->Cdr();
  }
  
  return false;
}

Ему подозрительно, что 2 соседних if'а имеют return true, а посередине return false. Хм…

Для сравнения, от того-же ASan, на практике гораздо больше прока: Зачем нужен динамический анализ кода, на примере проекта PVS-Studio.

Information

Rating
528-th
Works in
Date of birth
Registered
Activity

Specialization

Specialist
C++
C
Software development