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)
Ответ на: комментарий от anonymous

те кто участвуют в открытых проектах крайне негативно относятся к проприетарщине

Отучаемся говорить за всех

cppcheck

Игрушка.

anonymous
()

Гудбай сисиплюсплюс и пвс студио, здравствуйте языки с зависимыми типами!

anonymous
()

Это вы типа сделали ИИ?

Так лучше пусть кодит нормальные проги, а не пудрит мозги тем, кто написал что-то нормальное.

Пусть покажет, что он круче!

Пускай эта штука напишет свою операционку, и покажет всему человечеству, где зимуют зелёные человечки (тоесть раки)!

Работал я в одной конторе, где наш местный инноватор постоянно вводил какие-то хрени, типа такой проги.

Был случай, что он пропустил весь код на принудительное «исправление» и зафигачил в производственный репозиторий.

Угадайте что было?

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

Был случай, что он пропустил весь код на принудительное «исправление» и зафигачил в производственный репозиторий.

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

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

не вижу ничего плохого в том

Дай посмотреть на что нибудь, что ты сделал или хотябы принимал участие на 5% от сделанного?

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

а че побыстрей питонов с рубями будет

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

Помимо проверки множества проектов, мы ещё и нередко дарим ключ открытым бесплатным проектам.

Огласите весь список, пожалуйста. Список тех проектов, кому вы подарили ключ и которые этот подарок приняли. А так же срок действия этого ключа. Могут ли разработчики использовать этот ключ для встраивания вашего проверяющего софта в инфраструктуру сборки? Или надо регулярно руками открывать проект(или солюшен, как оно там у них в студиях называется) в вижуалстудии с вашим плагином и ручками смотреть, что оно там нарыло? А как же автоматизация?

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

Дай посмотреть на что нибудь, что ты сделал или хотябы принимал участие на 5% от сделанного?

Зачем? Не дам, ты вообще кто такой?

fehhner ★★★★★
()

Анонимусы должны готовиться в понедельник идти в школу. Не отвлекайтесь.

Serg_HIS
()
Ответ на: комментарий от i-rinat

Закрыли сотню странных гейзенбагов?

Как бы да...

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

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

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

Анонимусы - они все такие анонимные...

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

Если всё действительно так, как ты рассказываешь, то вы оба — хорошая иллюстрация к идиоме «из крайности в крайность».

i-rinat ★★★★★
()
Ответ на: комментарий от Serg_HIS

При первом запуске анализатор вывалит кучу ошибок и предупреждений, но нельзя ломиться и в авральном темпе сразу же коммитить их исправления. Это такие же исправления, как и любые другие, поэтому их должны проверить другие разработчики проекта. Я сначала не верил, когда читал «первый патч будет ошибочным», но это часто верно.

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

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

Помни, это инструмент, а не волшебная палочка

Полностью согласен!

Но тут идея в том, что эти штуки тоже пишут люди и закладывают свою «правильность».

Люди часто ошибаются.

Когда потом мы всей конторой разбирались с тем чуваком, нахрена это было сделано, он сказал что очень много читал про «правильное» программирование.

Я с ним разбирал и один (к счастью из всего моего модуля там был один но критичный баг исправленный этим исправлятором). Мы с ним сели его «обсасывать» и он не нашёл решения, как можно сделать «типа» правильно по заверениям анализатора и чтобы оно ещё и работало как нужно.

Это было примерно в 2003 году, потому точно не помню всё, но было связано с типа «лишним» созданием экземпляра класса или в «не нужном» месте.

Проект мега большой и мега нагруженный постоянно. Работает до сих пор. Как говорится и слава ктулху.

Если что - этот чувак был виноват в 70% багов в системе.

Он постоянно лез «оптимизировать» чужие классы и заливать «исправления» за минуту (в буквальном смысле) до деплоя на производственный сервак.

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

Если что - этот чувак был виноват в 70% багов в системе.

ишь ты... сам о себе в 3 лице.

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

и заливать «исправления» за минуту (в буквальном смысле) до деплоя на производственный сервак.

Тут не «тот чувак» виноват, а тот, кто ему доступ к репозиторию на запись дал.

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

Тут не «тот чувак» виноват, а тот, кто ему доступ к репозиторию на запись дал

Я небыл директором той конторы.

С этим чуваком была связана долгая история от начала развития той конторы.

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

С этим чуваком была связана долгая история от начала развития той конторы.

А-а-а, так может он не только 70% багов привносил, но и 70% фич? Тогда это многое меняет.

i-rinat ★★★★★
()
Ответ на: комментарий от Serg_HIS

короче заπзделся тут совсем.

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

но и 70% фич?

Я не скажу что он делал мало.

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

Только что поклацал - да красиво работает и выглядит прямо как и 12-13 лет назад. Немного стили и картинки поменяли.

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

А если не секрет, какова цена вашего продукта?

Сто тысяч мильёнов, как и все отечественное корпоративное говноПО.

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

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

Если информация несекретная, а информация о цене продукта по определению несекретна, то её нужно раскрывать без зазрения совести самому ТСу.

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

А, по-моему, всем нравится дискуссия. Так что не зря оказалась. :)

То есть то, что ваш продукт - говно, ты не отрицаешь. Уважаю за самокритичность.

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

Не понятно, что это может дать нашей компании.

А вы сами подумайте, и поймете...

Odalist ★★★★★
()
Ответ на: комментарий от i-rinat

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

Примечание. Кстати, чтобы начать быстро использовать инструмент, ещё можно воспользоваться базой разметки предупреждений. Тогда анализатор будет показывать предупреждения только для нового кода. А к старым можно возвращаться в свободное время. Раз они не найдены тестированием, значит не критичны и могут подождать. А вот новый код уже будет писаться под присмотром анализатора. Подробности можно узнать в документации или здесь: http://www.viva64.com/ru/b/0364/

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

Святослав Размыслов

Слишком дремучие имена у тульчан.

С ув, Всеволод Тугодумов.

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

P.S. Вот так и появляются сферические senior developer-ы, у которых не то что реп в свободном доступе нет, так еще и профиль на гитхабе невозможно загуглить (ибо его нет).

Появляются?.. Да всегда были - это гитхаб не так уж давно появился. И дальше будут и ничего плохого в этом нет.

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

Вот так и появляются сферические senior developer-ы, у которых не то что реп в свободном доступе нет, так еще и профиль на гитхабе невозможно загуглить (ибо его нет)

И это плохо, потому что... ? Я такой вот сферический, хотя и не сеньор.

tailgunner ★★★★★
()

Да не обращайте вы внимания на этого школьника

anonymous
()

Реклама проприетарной Windows-поделухи

Голосую за удаление

stevejobs ★★★★☆
()

О́тче наш,‭ ‬И́же еси́‭ ‬на небесе́х‭! Да святи́тся и́мя Твое́,‭ ‬да прии́дет Ца́рствие Твое́,‭ ‬ да бу́дет во́ля Твоя́,‭ ‬я́ко на небеси́‭ ‬и на земли́.‭ Хлеб наш насу́щный даждь нам днесь‭; и оста́ви нам до́лги на́ша,‭ ‬я́коже и мы оставля́ем должнико́м на́шим‭; ‬ и не введи́‭ ‬нас во искуше́ние,‭ ‬но изба́ви нас от лука́ваго.‭ ‬Ами́нь.‭ ‬

Сла́ва Отцу́‭ ‬и Сы́ну и Свято́му Ду́ху,‭ ‬и ны́не и при́сно и во ве́ки веко́в.‭ ‬Ами́нь.‭ ‬

Го́споди,‭ ‬поми́луй.‭ ‬ Го́споди,‭ ‬поми́луй.‭ ‬ Го́споди,‭ ‬поми́луй.

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

Открою вам секрет, те кто участвуют в открытых проектах крайне негативно относятся к проприетарщине

Ну это не секрет, а чисто твое мнение.

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

ну, как чего стыдиться. смысл такого рода ПО в том, чтобы выдавать не список false positive и потенциальных проблем, а находить именно вот такие уникальные баги. вы же позиционируете себя как самых-самых поисковитых? или yet another software?:)

на примере FreeBSD вы демонстрируете, что нашли аж кучу ошибок. причем это _возможные_, потенциальные ошибки, которые могут найти и другие анализаторы.

а когда речь доходит до реальных (в данном случае то, что это узявимость в glibc, делает эту ошибку критической), то оказывает что клиенты, которые бы положились на вас просто напросто лоханулись.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от Andrey_Karpov_2009

попробуйте пройти тест на внимательность

Меня почему-то после прохождения пары вопросов перекидывает на главную теста.

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