The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Отчет по итогам анализа кода 250 открытых проектов

21.05.2008 02:41

Coverity, компания, специализирующаяся на системах анализа исходных текстов, опубликовала отчет о проверке более чем 250 открытых проектов. Общий объем проанализированного кода составил 55 миллионов строк. В отчете представлена суммарная статистика частых ошибок, детализация доступна для разработчиков каждого из проектов, принимающих участие в тестировании.

В общем, качество кода заметно улучшилось, по сравнении с прошлогодним отчетом число ошибок уменьшилось на 16%. Проекты самым малым количеством ошибок ("чистым кодом"): Amanda, NTP, OpenPAM, OpenVPN, Perl, PHP, Python и Samba.

Отдельно отмечается тенденция повышения интереса к open source продуктам со стороны разработчиков коммерческого ПО, по прогнозу консалтинговой компании Gartner, к 2012 году ожидается, что 80% всего коммерческого ПО будет содержать элементы open-source технологий.

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

Итоговая таблица выглядит так:

Тип ошибок Количество ошибок Процент
Разыменование пустого указателя
(NULL Pointer Dereference)
6448 27.95%
Утечка ресурса
(Resource Leak)
5852 25.73%
Неумышленно Игнорируемые Выражения
(Unintentional Ignored Expressions)
2252 9.76%
Использование до проверки на пустой указатель
(Use Before Test (NULL))
1867 8.09%
Выход за пределы статического буфера
(Buffer Overrun (statically allocated))
1417 6.14%
Использование памяти после ее высвобождения
(Use After Free)
1491 6.46%
Опасное использование возвращенного пустого указателя.
(Unsafe use of Returned NULL)
1349 5.85%
Чтение неинициализированного значения.
(Uninitialized Values Read)
1268 5.50%
Небезопасное использование возвращенного отрицательного значения.
(Unsafe use of Returned Negative)
859 3.72%
Несоответствие типа и выделенного размера под этот тип.
(Type and Allocation Size Mismatch)
144 0.62%
Выход за границы динамически выделенного буфера
Buffer Overrun (dynamically allocated)
72 0.31%
Использование до проверки на отрицательное значение.
Use Before Test (negative)
49 0.21%


  1. Главная ссылка к новости (http://scan.coverity.com...)
  2. Homeland Security Helps Reduce Open Source Flaws
  3. OpenNews: Одиннадцать открытых проектов исправили все замечания "Coverity" теста
  4. OpenNews: Второй этап тестирования качества открытого ПО
  5. OpenNews: Результаты автоматизированной проверки качества открытых программ
  6. OpenNews: Проверка открытых программ на качество кода продолжается
Автор новости: pavlinux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/15991-security
Ключевые слова: security, opensource, analyze
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (13) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:28, 21/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    один из самых чистых проектов - PHP ?!
     
     
  • 2.2, Shura (??), 10:46, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >один из самых чистых проектов - PHP ?!

    А что тут такого?

     
  • 2.3, Аноним (-), 10:52, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >один из самых чистых проектов - PHP ?!

    код может быть чистым и без ошибок, а логика работы алгоритма одновременно с этим содержать ошибки :)

     
     
  • 3.7, pavlinux (ok), 17:27, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>один из самых чистых проектов - PHP ?!
    >
    >код может быть чистым и без ошибок, а логика работы алгоритма одновременно
    >с этим содержать ошибки :)

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

     
  • 2.6, uldus (ok), 12:35, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >один из самых чистых проектов - PHP ?!

    чистый в плане исправления всех замечаний Coverity.

     
  • 2.11, Xcode (?), 00:36, 22/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >один из самых чистых проектов - PHP ?!

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

     
  • 2.13, ЩекнИтрч (?), 06:50, 22/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >один из самых чистых проектов - PHP ?!

    Дарагой кловун!!! :) "Масштаб внедрения", "число копий" - семантического смысла этих понятий ваша неблагополучная мама преподать вам так и не сумела? :)

     

  • 1.8, Аноним (8), 20:20, 21/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да уж - помнится один из дебиановцев следуя советам этой системы чуть-чуть улучшил опен_ссл :)
     
     
  • 2.14, phpcoder (??), 08:49, 22/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Да уж - помнится один из дебиановцев следуя советам этой системы чуть-чуть
    >улучшил опен_ссл :)

    Неправда. Там был использован valgrind, а новость про coverity.


     

  • 1.9, одмин (?), 21:02, 21/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    имхо, полная фигня. что php, что самба в реальной жизни - решето.
     
     
  • 2.10, Heckfy (ok), 22:20, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, только скачивание файлов самбовым клиентом с виндовой шары с применением //server/share/../../../../boot.ini микрософт считал глюком "неправильного" клиента, а самбоводы - виндового сервера.
    Виндовая SMB, она же настолько правильная, что все ее глюки запатентованы и их повторение нарушает права Балмера.
     
     
  • 3.15, Дмитрий Т (?), 09:25, 27/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Странно, что до сих пор не написана под *nix нормальная замена контроллёра домена с клиентами под винду, без всякой привязки к smb, чтоб не за майкрософтом пытаться успевать, а просто развивать свою систему.
     
  • 2.12, Xcode (?), 00:40, 22/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >имхо, полная фигня. что php, что самба в реальной жизни - решето.

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру