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 выполняет статический анализ кода и генерирует отчёт, помогающий программисту находить и устранять ошибки. На сайте компании можно увидеть более подробное описание и скачать демонстрационную версию.

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

товарищи разработчики, а вот я сейчас поднял венду в виртуалке, скачал, значит, студию эту на «попробовать». Засимейчил свой проект для студии (13), прогнал пвс-студией и она нашла только неинициализированные в конструкторах указали, которыя я инициализирую в init вызовах.

Посему вопрос. Вот эта версия чем-то будет отличаться результатами от платной?

anonymous ()

А что означает блюющий пони на логотипе.

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

Вот эта версия чем-то будет отличаться результатами от платной?

Получать ответы на свои вопросы Вы сможете после уплаты over $1k.

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

ну если там результаты не будут отличаться, зачем оно тогда ваще нужно? Если б оно мне выдало 100500 варнингов, где я мудак, я б подумал.

Да и платить деньги за то, что будет проверять опенсорс проект ... короче сомнительной нужности штука для OS разработчика.

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

А как по твоему они проверяли сырцы фряхи? И линукс и фряховерсия там есть, но они почему-то очкуют сделать их публичными.

Gorthauer ★★★★★ ()

А что там с линуксом?

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

Данный пост гораздо интереснее

https://habrahabr.ru/post/255741 Приветствую! Это мой первый пост на Хабре в принципе, но не первая статья о взломе ПО вообще, поэтому навык писать все с начала и по шагам, для начинающих крякеров, у меня есть. В данной статье я расскажу о том, как был отучен от триальности PVS-Studio.

SergikXP ()

Я считаю, что как раз для мира FOSS эта PVS-Studio - бальзам на их израненные переполнениями буфера :)
Нет ничего хуже С/С++ и именно у них находятся тонны «таймбомб», «переполнений» и просто тупых опечаток копипасты.

Для сравнения, я прогонял свой C# проект - было не найдено ни одного факапа, но не потому, что я - гений, а именно из-за «спроектированной безопасности» языка. Линуксу давно надо перейти на какой-нибудь D или Go/Rust - это значительно повысит качество программ и соотв. лояльность пользователей.

matumba ★★★★★ ()

Добавлена порция патчей от компании Samsung с реализацией сетевой прозрачности для протокола Wayland, позволяющих организовать выполнение клиентских приложений и отрисовку на разных компьютерах. Суть предложенных изменений сводится к пробросу существующего протокола поверх TCP/IP-сокета.

нуокейчо. с нетерпением жду изобретения wfs.

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

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

Вы недавно из схрона выползли? Не сильно там запаршивели?

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

Ппц, 2016 год :( Clang стоило бы натаскать на такое.

Вероятнее всего это ошибка. Но есть неиллюзорная возможность лишней табуляции.

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

Ответил.

Мы считаем, что заработать в Linux мире крайне сложно. Даже понятие «демо вресия не под Win» вызывает затруднение в интерпретации. Каждый подразумевает под этим свою рабочую операционную систему, свою любимую среду разработки и свой компилятор. Именно в этом проблема. Собрать и запустить PVS-Studio, скажем под Linux не проблема. Вот только собранный исполняемый модуль != приложение. Итого. Работы оочень много, а выигрыш сомнителен. Именно поэтому сделали следующий шаг в сторону C#. С этим всё намного понятней. Внутреннюю Linux версию мы используем сейчас в основном для демонстрации возможностей, иногда проверяя известные открытые проекты.

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

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

Мы никогда не скрывали, что проверяя проекты, рекламируем PVS-Studio. Вот уж прям срыв покровов. :)

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

Ясно, что до Coverity нам далеко (хотя, между прочим, мы проверяли проект уже после него). Но мы активно развиваемся по разным направлениям. Тем не менее у нас уже немало клиентов. И многие продлевают лицензию вот уже не один год. Плюс не стоит забывать, что смысл статического анализа в регулярности, а не в разовых наскоках. Сложно ожидать найти 100 эпических ошибок в отлаженном, работающем проекте. А вот постепенно в процессе разработки, запросто 100 таких случаев можно будет найти на самом раннем этапе, тем самым экономя время на разработку, отладку и поддержку.

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

Почем?

Просим написать с корпоративного ящика. И мы ответим на все Ваши вопросы.

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

Какой смысл выкладывать такое в новости? типа купите нашего слона из дотнета, шланга и с анальной привязкой к мс-студии?

У меня есть ощущения, что многим интересен такой формат статей. Вон уже сколько комментариев разных. Так что не вижу в этом ничего плохого.

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

товарищи разработчики, а вот я сейчас поднял венду в виртуалке, скачал, значит, студию эту на «попробовать». Засимейчил свой проект для студии (13), прогнал пвс-студией и она нашла только неинициализированные в конструкторах указали, которыя я инициализирую в init вызовах.

Не понятно, как и что Вы сделали. Не понятно, какого размера проект. Этот проект после переноса в Visual C++ компилируется? Мало данных. Предлагаю обсудить вашу ситуацию подробнее в почте.

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

Здравствуйте!

А почему бы не выпустить веб-версию анализатора? Понятно, что никто не станет отдавать свой коммерческий код на сторону, но для открытых проектов и менее параноидальных разработчиков это будет отличное предложение. Стоимость одной проверки можно рассчитывать в зависимости от количества строк кода (для демонстрации бесплатно проверять, например, 500 строк).

2016 год как никак, а у вас на сайт без слёз не взглянешь :)

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

А почему бы не выпустить веб-версию анализатора?

Мы не видим от этого никакой практической пользы для себя.

2016 год как никак, а у вас на сайт без слёз не взглянешь

Тогда Вам понравится: http://www.abxsoft.com/

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

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

то есть, на сколько я понимаю, обычному программисту нужно искать что-то другое, ибо pvs-studio недоступен?

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

прогонял свой C# проект - было не найдено ни одного факапа

Сходи в Development, там царь тебе популярно объяснит, что нафакапил ты ещё на стадии выбора С# :))

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

то есть, на сколько я понимаю, обычному программисту нужно искать что-то другое, ибо pvs-studio недоступен?

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

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

Не понятно, как и что Вы сделали.

Что из шагов «поднял винду в виртуалке» «скачал демку пвс-студии» «сделал студийный проект cmake'ом», «запустил анализ» не понятно?

Проект небольшой ~700к исходников, может компилироваться на студии, да.

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

http://blogs.softodrom.ru/Комментарии/831/

Стоимость лицензии PVS-Studio 5.00 для команды до пяти разработчиков составляет 5 250 евро. Более подробная информация о ценовой политике доступна по ссылке: http://www.viva64.com/ru/order/. Бесплатную пробную версию можно скачать на странице загрузки http://www.viva64.com/ru/pvs-studio-download/.

Не думаю, что за 2 года аппетиты у парней уменьшились.

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

каких то 5-7 лет назад, когда в линуксе о 3D или работающем фотошопе можно было мечтать

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

Что из шагов «поднял винду в виртуалке» «скачал демку пвс-студии» «сделал студийный проект cmake'ом», «запустил анализ» не понятно?

Смущает малое количество предупреждений. Приходите в почту. Заодно, хороший повод попросить временный ключ.

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

Стоимость лицензии PVS-Studio 5.00 для команды до пяти разработчиков составляет 5 250 евро.

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

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

Напишите им кто-нибудь, потом сюда письмо выложите.

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

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

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

а если я одиночка и пишу «для себя»? у меня нет ни начальника ни отдела закупок...

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

а если я одиночка и пишу «для себя»? у меня нет ни начальника ни отдела закупок...

зарплаты, я так понимаю, тоже нет

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

отправил письма на саппорт, со ссылкой на проект.

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

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

По-моему, почти все эти ошибки отлично делаются на паскале. Разве что ошибка счетчика... Но там фейспалм не только в ней, а в самой сути пустого цикла.

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

«сделал студийный проект cmake'ом»

Кстати, возможно, с помощью cmake Вы создали нестандарный проект Visual Studio. Такие проекты не проверяются с помощью IDE плагина. Например, у Unreal Engine такой проект: Visual Studio всего лишь запускает сборочный скрипт.

Для проверки таких решений следует использовать утилиту Standalone.

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

не не не. Оно ж нашло неинициализированные в конструкторе указатели. Нашло в исходнике. Оно кстати заодно и нагенеренные протобуфером файлы проверила и нашло там несколько варнингов, но не критичных.

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

да, за C/C++ мне никто не платит

А зачем тогда нужен анализатор?

P.S. Рассказы про хобби я не воспринимаю всерьез. За хобби тоже надо платить. Например, снаряжение для рыбалки (с палатками, лодкой, и т.д.) стоит денег, не смотря на то, что будет нарыбачено на 500 р :). Но ведь рыбак на основании этого не заявляет, что в магазине ему всё должны отдать бесплатно или за 200 р.

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

За хобби тоже надо платить

gcc, clang — бесплатно
доки — бесплатно
vim, emacs, qtcreator — бесплатно

не надо платить за хобби.

anonymous ()

На сайте компании можно увидеть более подробное описание и скачать демонстрационную версию.

Не могу найти по Вашей ссылке крак и кейген, чтобы Trail превратить в Ultimate.
По-моему, Вы безответственно относитесь к своей работе.

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

5250 евро?????
Я не уверен, что вся эта компания всех этих денег стоит, не то что программа.

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

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

Так никто же не заставляет их продуктом пользоваться. И только совсем двинутый фанатик не воспользуется хотя бы готовыми результатами.

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

https://habrahabr.ru/company/pvs-studio/blog/256637/

Таким образом проект убыточен. Ведь потраченное время (самый ценный ресурс) мы могли бы использовать для совершенствования PVS-Studio. Мы вынуждены закрыть проект CppCat и сосредоточиться на PVS-Studio.

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

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

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

А ты уверен, что оно тебе вообще может быть по карману? Подобные системы обычно закупаются сразу на организацию и ценник там может начинаться от десятков тысяч баксов.

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

По сути, после того как программа написана начинается бесконечный цикл переливания из пустого в порожнее

У нас совершенно другая картина. Мы делаем и делаем новые диагностики. И конца списка, что ещё стоит сделать не видно. Он только увеличивается.

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

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

Реклама проприетарщины на моем лоре? No way...

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