В этой статье речь пойдет о проверке еще одного известного open source проекта — векторного графического редактора Inkscape 0.92. Проект развивается уже более 12 лет и предоставляет множество возможностей по работе с различными форматами векторных иллюстраций. За это время его кодовая база выросла до 600 тысяч строк, и пришло время проверить его с помощью статического анализатора PVS-Studio.
Читать полностью »
Рубрика «статический анализ кода» - 18
В ожидании Linux версии: проверка кода графического редактора Inkscape
2016-08-15 в 14:40, admin, рубрики: c++, inkscape, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, обработка изображений, Программирование, статический анализ кодаСтряхнём пыль с глобуса: проверяем проект NASA World Wind
2016-08-02 в 9:02, admin, рубрики: .net, bugs, C#, NASA World Wind, pvs-studio, Блог компании PVS-Studio, все ошибаются, качество кода, ошибки в программе, Совершенный код, статический анализ кодаИногда полезно оглянуться и посмотреть, как мог помочь анализатор в старых проектах, и каких ошибок можно своевременно избежать, если использовать анализатор регулярно. В этот раз выбор пал на проект NASA World Wind, который до 2007 года разрабатывался на языке C#.
NASA World Wind — это интерактивный глобус, позволяющий увидеть любое место на Земле. Для работы проект использует базу публичных снимков со спутника Landsat и проект моделирования рельефа Shuttle Radar Topography Mission. Первые версии проекта создавались на языке С#. Позже проект продолжил своё развитие на языке Java. Последняя выпущенная на C# версия — 1.4. Хотя C# версия уже много лет как заброшена, это не помешает нам проверить проект и оценить качество кода, разработчиком которого является NASA Ames Research Center.
Зачем мы проверили старый проект? Нам давно предлагали проверить что-то из проектов NASA и вот мы случайно набрели на этот проект. Да, эта проверка не принесёт никакой пользы проекту. Но такой цели в этот раз мы и не ставили. Мы просто хотели в очередной раз продемонстрировать пользу, которую может приносить статический анализатор кода PVS-Studio при разработке, в том числе и компании NASA.
PVS-Studio признаётся в любви к Linux
2016-07-28 в 14:17, admin, рубрики: C, c++, clang, gcc, linux, pvs-studio, PVS-Studio for Linux, PVS-Studio для Linux, Блог компании PVS-Studio, Разработка под Linux, Си, статический анализ кода, статический анализатор кодаЭто заметка о любви. О любви статического анализатора кода PVS-Studio к замечательной открытой операционной системе Linux. Эта любовь молода, трогательная и ранима. Этой любви нужно помочь укрепиться. Вы поможете, если заранее запишитесь в добровольцы для тестирования beta-версии PVS-Studio for Linux.
Читать полностью »
Сравниваем реализацию языков Python и Ruby по плотности ошибок
2016-07-22 в 7:05, admin, рубрики: C, open source, pvs-studio, python, ruby, static code analysis, Блог компании PVS-Studio, интерпретаторы, статический анализ кодаКакой язык программирования начать учить: Python или Ruby? Что из них лучше? Django или Ruby on Rails? Такие вопросы можно часто встретить на IT форумах всего мира. Я же предлагаю сравнить не сами языки, а их эталонные реализации: CPython и MRI. О том, какие ошибки в их интерпретаторах смог найти PVS-Studio, и пойдёт речь в этой статье.
Команда PVS-Studio готовит технический прорыв, ну а пока перепроверим Blender
2016-07-21 в 8:25, admin, рубрики: blender, blender 3d, C, c/c++, c++, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, спойлер, статический анализ кодаСтатический анализ наиболее полезен при регулярных проверках. Особенно для таких активно развивающихся проектов как Blender. Пришло время проверить его вновь, и узнать, какие подозрительные места удастся найти на этот раз.
Введение
Blender — профессиональный пакет для создания трёхмерной компьютерной графики, включающий в себя средства моделирования, анимации, рендеринга, постобработки и монтажа видео со звуком, также использующийся для создания интерактивных игр.
Проект уже проверялся ранее. Результаты проверки версии 2.62 изложены в статье "Проверка проекта Blender с помощью PVS-Studio".
Со времени прошлой проверки размер исходного кода вместе с дополнительными библиотеками увеличился до 77 мегабайт. А его объём вырос до 2206 KLOC. На момент предыдущей поверки размер проекта составлял 68 мегабайт (2105 KLOC).
Читать полностью »
Проверяем исходный код FlashDevelop с помощью PVS-Studio
2016-07-15 в 7:53, admin, рубрики: .net, C#, flashdevelop, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, Компиляторы, статический анализ кодаДля проверки качества диагностик нашего статического анализатора и его рекламы мы регулярно анализируем проекты с открытым исходным кодом. Разработчики проекта FlashDevelop сами попросили нас проверить их продукт, что мы с радостью и сделали.
Введение
FlashDevelop — популярная среда разработки Flash-приложений, поддерживающая Action Script версии 2 и 3, Haxe, JavaScript, HTML, PHP, C#, и обладающая функционалом, присущим современным редакторам кода, например, автодополнение кода, встроенная поддержка svn, git, mercurial, шаблоны, сторонние плагины, темы подсветки синтаксиса и многое другое. Примечательно, что FlashDevelop использовали Fireaxis Games при разработке XCOM: Enemy Unknown.
Читать полностью »
Сортировка предупреждений статических анализаторов по приоритету при поиске и исправлении программных ошибок
2016-07-12 в 18:06, admin, рубрики: cert, CERT Secure Coding, static code analysis, Блог компании PVS-Studio, информационная безопасность, ошибки в коде, Программирование, статический анализ кодаЗа 2015 год в Национальной базе данных уязвимостей США (National Vulnerability Database, NVD) было зарегистрировано 6,488 новых программных уязвимостей, всего же в ней насчитывается 74,885 уязвимостей, найденных за период 1988-2016 гг. Инструменты статического анализа проверяют исходный код программ на наличие дефектов, в том числе потенциальных уязвимостей защиты, и выдают диагностические сообщения (предупреждения), в которых указывается местоположение предполагаемого дефекта, его характер, и, как правило, дополнительная контекстуальная информация. Достоверность таких предупреждений затем оценивается пользователем. Трудозатраты на проверку всех предупреждений и исправление всех подтвержденных ошибок вручную зачастую значительно превосходят бюджет и сроки проекта. По этой причине пользователи нуждаются в инструментах, которые позволили бы сортировать предупреждения по степени важности, тем самым определяя порядок их проверки. Настоящая статья посвящена проводимому нами исследованию данного вопроса с использованием классификационных моделей, призванных помочь специалистам по анализу и программистам в классификации предупреждений по приоритету и определении оптимального порядка исправления соответствующих ошибок.
Читать полностью »
Accord.Net: ищем ошибку в коде, из-за которой машины поработят человечество
2016-07-11 в 11:28, admin, рубрики: .net, Accord, Accord.Net, C#, machine learning, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, машинное обучение, статический анализ кода
Статьи о проверке проектов с открытым исходным кодом — вещь полезная. Кто-то, в том числе и разработчики, узнает об ошибках, содержащихся в проекте, кто-то узнает о методологии статического анализа и начнет применять её для повышения качества своего кода. Для нас же это прекрасный способ популяризации анализатора PVS-Studio, а заодно возможность его дополнительного тестирования. На этот раз я проверил платформу Accord.Net и нашёл в коде много интересных фрагментов.
Читать полностью »
Ищем уязвимости в коде: теория, практика и перспективы SAST
2016-07-08 в 11:02, admin, рубрики: DAST, IAST, SAST, static code analysis, анализатор кода, Блог компании Positive Technologies, информационная безопасность, Программирование, статический анализ кода, метки: DAST, IAST, SASTНе будет большим преувеличением сказать, что рынок средств статического тестирования защищенности приложений (Static Application Security Testing, SAST) в наше время переживает самый настоящий бум. Не проходит и пары месяцев между публикациями очередных научных работ на эту тему, ежегодно на рынок выводятся все новые и новые инструменты статического анализа защищенности, а месту SAST в процессе разработки ПО отводятся целые секции на международных ИБ-конференциях. В условиях непрерывного информационного прессинга со стороны поставщиков инструментария SAST, нелегко разобраться в том, что есть правда, а что − не более, чем маркетинговые уловки, слабо коррелирующие с действительностью. Давайте попробуем понять, что же действительно под силу инструментам SAST и как быть с тем, что им «не по зубам». Для этого нам придется немного погрузиться в теорию, лежащую в основе современных средств статического анализа защищенности кода.
Как не наступить на грабли, работая с сериализацией
2016-07-05 в 6:53, admin, рубрики: .net, C#, open source, pvs-studio, serialization, static code analysis, Блог компании PVS-Studio, Программирование, статический анализ кодаНесмотря на то, что использовать механизм сериализации при программировании на C# достаточно просто и удобно, есть моменты, которые стоит учитывать. О том, на какие грабли можно наступить, работая с сериализацией, о примерах кода, в котором эти грабли припрятаны, а также о том, как PVS-Studio поможет вам избежать шишек на лбу, и будет эта статья.
Читать полностью »