LINUX.ORG.RU

В ядре FreeBSD выявлено как минимум 40 ошибок с помощью анализатора кода PVS-Studio

 , , ,


3

8

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

Теперь очередь дошла и до ядра FreeBSD. Исходный код для проверки был взят с GitHub из ветки 'master'. По заявлению Святослава, анализатор PVS-Studio выявил около 1000 подозрительных фрагментов в коде, которые с большой вероятностью являются ошибками или неаккуратным кодом. 40 наиболее интересных фрагментов кода он описал в статье. Список предупреждений был заранее передан команде FreeBSD, и она уже начала вносить правки.

Пара слов для программистов, ещё не знакомых с PVS-Studio. Это инструмент для выявления ошибок в исходном коде программ, написанных на языках С, C++ и C#. PVS-Studio выполняет статический анализ кода и генерирует отчёт, помогающий программисту находить и устранять ошибки. На сайте компании можно увидеть более подробное описание и скачать демонстрационную версию.

>>> Подробности



Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 2)

Ответ на: комментарий от sudopacman

Да, регулярно.

Интересно, а они проверяли этим анализатором его же код?

Ответы на вопросы читателей статей про PVS-Studio, версия 2015. Вы проверяли PVS-Studio с помощью PVS-Studio? Где статья о результатах проверки?

Andrey_Karpov_2009
() автор топика

Большое спасибо, очень интересно.

anonymous
()

Полно каких-то детских ошибок, от бсд-шников не ожидал :/

  for (i=0; i < 10; i++) {
    for (i = 0; i < 10000; i++);
  }

Смеяться или плакать?

Точно такая же ошибка была обнаружена мной в коде операционной системы Haiku (см. раздел «Предупреждения #17, #18»). Не знаю, кто у кого позаимствовал файл «if_ae.c», но ошибка явно размножается копированием :)

Смех победил.

anonymous
()

Пожалуйста напишите нам, чтобы узнать цену на PVS-Studio. В письме укажите информацию о компании

Проприетарщина в квадрате. Недоступны не только сорцы, но и цена.

ashot ★★★★
()

Это такая реклама упорная?

Вы можете получить на время полноценную версию анализатора, связавшись с нами.

получить на время

связавшись с нами

/0
не вижу смысла брать кота в мешке и платить дважды, когда у меня и так есть платное IDE с встроенным анализатором, который совершенствуется с каждым обновлением. Прайсинг не думали сделать, не?

reprimand ★★★★★
()
Ответ на: комментарий от beastie

Когда уже будет OpenBSD? Не, в самом деле очень интересно!

когда нужно будет очередной раз пропиарить свой продукт, очевидно же

reprimand ★★★★★
()

Полезный инструмент, авторам спасибо за такие проверки open-source проектов.

orion ★★
()

Кстати, вопрос.
В PVS-Studio 6.0, похоже, убрали пункт из меню, которым можно было проверить исходники, обработанные препроцессором?

orion ★★
()

Вы частенько рекламируете свою программу.
А есть ли у вас что-то, работающее из-под линукса?
Я (плюсовик-программист и немного алкоголик) зашёл на ваш сайт и увидел лишь «плагин» к вижуал-студио(тут в скобках множество C,R,TM и прочей гадости в кружочках). Было бы интересно пощупать пусть и тестовую, но линуксовую версию.
Привязка к IDE не важна. Пусть как valgrind проработает.
Хотелось бы пощупать (мне кажется что вы хорошую штуку делаете) когда -Wall недостаточно.

Stahl ★★☆
()
Последнее исправление: Stahl (всего исправлений: 1)

Просьба к разработчикам PVS-Studio ответить на Ищу тулзу для поиска дублирующихся участков кода (комментарий) Исходный код JavaScript-движка ChakraCore выложен на GitHub (комментарий)

Да, мне правда интересно, насколько PVS готов к использованию в не-Windows окружении без этих студий и вайна, но никаких демо-версий для не-винды у вас попросту нет

SZT ★★★★★
()
Последнее исправление: SZT (всего исправлений: 1)

А где вопли «Это рекламная статья проприетарного говна, найденные им баги принципиально чинить ненужна, мы лучше мамке назло уши отморозим!111»? Не торт, не торт...

Deleted
()

Что-то больше на рекламу в чистом виде похоже. По крайней мере трещите как сорока на колу.

Я вам больше скажу, в FreeBSD не мало ошибок. И ничего удивительного в этом нет. Лично я сам, вручную, проанализировал код одной программы, которую вы никак не могли обойти стороной, если использовали саму систему. Я убил на это два дня. Нашел и оверинжиниринг, и логические ошибки. В итоге я сообщил об ошибках разработчикам и в данный момент они устранены.

Так что вы не столь крутые, как мечтаете выглядеть.

alkash
()
Ответ на: комментарий от alkash

это и есть реклама.
хрен с ней, с проприетарщиной. я закрытый бинарь даже даром не поставлю на свою машину, а тут ещё и маздай (Це). фу.

Iron_Bug ★★★★★
()
Ответ на: комментарий от SysVinit-hater

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

Iron_Bug ★★★★★
()

Пиаримся, мальчики, пиаримся! Не стесняемся! Так, а давайте я вас сразу группой возьму...

unt1tled ★★★★
()
Ответ на: комментарий от ashot

да, только подозрительных кусков суммарно 1000: ждём новостей о крупных уязвимостях.

anonymous
()
Ответ на: комментарий от Deleted

А где вопли «Это рекламная статья проприетарного говна, найденные им баги принципиально чинить ненужна, мы лучше мамке назло уши отморозим!111»? Не торт, не торт...

В рекламных статьях нет ничего плохого, если не скрывается, что это реклама.

Black_Shadow ★★★★★
()
Ответ на: комментарий от WRG

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

anonymous
()

Сделайте уже что-нибудь для линукса. Хотя бы тот же платный бинарник.

Aswed ★★★★★
()
Ответ на: комментарий от anonymous

Я говорил любителям Фри, что нужно было писать её на Паскале, а они не верили! :D

Современные компиляторы Паскаля, между тем, не дают скомпилировать программу, где внутренний цикл меняет счётчик внешнего.

Vudod ★★★★★
()
Ответ на: комментарий от anonymous

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

Дааа, еще не так давно можно было очень эпично выдернуть флешку. И эти люди нам про 12309 рассказывают.

Pavval ★★★★★
()
Ответ на: комментарий от ashot

Проприетарщина в квадрате. Недоступны не только сорцы, но и цена.

Это называется Oracle.

hobbit ★★★★★
()
Ответ на: комментарий от reprimand

Прайсинг не думали сделать, не?

Мы работаем только с компаниями. Для них запрос цены является нормальным, привычным процессом. Продажа индивидуальных лицензий по фиксированному прайсу показала свою нежизнеспособность.

Andrey_Karpov_2009
() автор топика
Ответ на: комментарий от anonymous

Копипаста - основа современного программирования!А не эти ваши паттерны, методики и прочие непонятные слова

WARNING ★★★★
()
Ответ на: комментарий от orion

PVS-Studio 6.0

В PVS-Studio 6.0, похоже, убрали пункт из меню, которым можно было проверить исходники, обработанные препроцессором?

Да. Мы считаем его более не нужным. Теперь если используется хитрая система сборки, то в утилите PVS-Studio Standalone есть возможность отслеживать запуск компилятора и собирать необходимую информацию. Это позволяет проверить проект, не заморачиваясь с предварительной генерацией *.i файлов (пример).

Если хочется проверить проект, который не собирается под Windows вообще, это отдельная история. С сгенерированными *.i файлами было много проблем, нестыковок и т.д. Поэтому если есть что-то нестандартное, то лучше связаться с нами и обсудить варианты сотрудничества и как можно проверить такой проект.

Andrey_Karpov_2009
() автор топика
Ответ на: комментарий от Stahl

А есть ли у вас что-то, работающее из-под линукса?

Да. Пример.

Было бы интересно пощупать пусть и тестовую, но линуксовую версию. Хотелось бы пощупать (мне кажется что вы хорошую штуку делаете) когда -Wall недостаточно.

Прошу связаться с нами, как сотрудника компании, и мы обсудим этот вопрос.

Andrey_Karpov_2009
() автор топика
Ответ на: комментарий от Pavval

ума не приложу, зачем может понадобиться втыкать флешки в работающий сервер? Хотя это же линуксоиды, у них все по-своему...

anonymous
()

Какой смысл выкладывать такое в новости? типа купите нашего слона из дотнета, шланга и с анальной привязкой к мс-студии? Ну и то, что в фриибсд есть ошибки - не новость нифига. даже то, что в самое это поделке есть ошибки - не новость.

anonymous
()

Без метрик не щитово :(

Так хотелось растопки подбросить, у кого дефектов на KLOC больше, ээх... Желательно с/без драйверов - там основная помойка.

Linux vs FreeBSD Тайсон vs Холифилд Феррари vs Мерседес Сандерс vs Трамп :-D

anonymous
()
Ответ на: PVS-Studio 6.0 от Andrey_Karpov_2009

Да. Мы считаем его более не нужным. Теперь если используется хитрая система сборки, то в утилите PVS-Studio Standalone есть возможность отслеживать запуск компилятора и собирать необходимую информацию. Это позволяет проверить проект, не заморачиваясь с предварительной генерацией *.i файлов (пример).

Если хочется проверить проект, который не собирается под Windows вообще, это отдельная история. С сгенерированными *.i файлами было много проблем, нестыковок и т.д. Поэтому если есть что-то нестандартное, то лучше связаться с нами и обсудить варианты сотрудничества и как можно проверить такой проект.

Т.е. Вы вырезали фичу, которая позволяла пользователям Linux и BSD использовать ваш продукт (у меня проблем не возникало), но при этом рекламируете его на сайте, посвящённом Linux.
И при этом намекаете, что неплохо бы обсудить варианты оплаты, чтобы продолжить ей пользоваться. Всё с вами ясно понятно.
Хорошо, что есть старые версии PVS-Studio.

orion ★★
()
Ответ на: комментарий от anonymous

зачем может понадобиться втыкать флешки в работающий сервер

Чтобы его повалить же, бзд такая бзд.

anonymous
()
Ответ на: комментарий от anonymous

ох уж эти линукс-фанатики, лишь бы вражеские сервера «повалить»... Теперь буду запаивать все разъемы с юсб в серверной, а то мало ли, придет какой-нибудь арчевод и поразит своей флешкой кошерную фряху.

anonymous
()

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

Однако, мы не хотели просто снизить цену на PVS-Studio. В конце концов, PVS-Studio стабильно приобретается компаниями и значит с этим инструментом и ценой всё хорошо.

И тогда мы придумали CppCat. Мы cделали так, чтобы PVS-Studio был удобен для работы с крупными проектами, а CppCat – с мелкими. Ведь нет смысла отбирать клиентов у более дорогого PVS-Studio. Однако, он полностью удовлетворяет потребности небольших команд разработчиков, работающих в среде Visual Studio.

Более того, чтобы действовать наверняка, мы сделали цену ниже, чем нам рекомендовали. Как я уже говорил, нам писали про $300-$500. Мы сделали $250.

Первый «звоночек», что мы ошиблись, прозвучал сразу. Дело в том, что в течении некоторого времени мы выписывали контакты всех людей, которые говорили, что инструмент PVS-Studio интересен, но стоит недопустимо дорого. Когда появился CppCat, мы связались с этими людьми и предложили им приобрести его за $250. Такое предложение было отправлено приблизительно 20 программистам. И как вы думаете каков результат? Купили двое.

Это значит, что статический анализатор на самом деле был не нужен всем этим людям, а свои рекомендации они оставляли просто так. Вообще, уже давно подмечена следующая тенденция. Тем, кому надо — покупают продукт. Тем, кому не надо, обсуждают слишком высокую цену и недостатки инструмента. Естественно не мы первые это заметили. Мне, например, нравится цитата из статьи „Отказались от демо и фримиума — и отсеяли кучу шлака“:

Эльба (система онлайн-бухгалтерии) на старте стоила 300 рублей в месяц, и даже тогда находились люди, считавшие эту цену заоблачной. При этом первый покупатель оплатил годовую подписку еще до того, как мы закрыли доступ к части функций на бесплатном тарифе. Этот пример отлично иллюстрирует два типа потенциальных клиентов: Представитель целевой аудитории, который гипотетически воспользовался бы вашим предложением, если бы ему за это доплатили; Настоящий потенциальный клиент, которому ваш инструмент действительно принесёт пользу.»

Когда появился CppCat, мы связались с этими людьми и предложили им приобрести его за $250. Такое предложение было отправлено приблизительно 20 программистам. И как вы думаете каков результат? Купили двое.

Нищеброды. Они такие.

Oxdeadbeef ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.