The OpenNET Project / Index page

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

14.12.2017 12:54  Сравнение качества кода Firebird, MySQL и PostgreSQL в анализаторе PVS-Studio (реклама)

Компания СиПроВер опубликовала результаты сравнения качества кода СУБД Firebird, MySQL и PostgreSQL, проведённого по результатам проверки при помощи продукта PVS-Studio, позволяющего выявить ошибки, дефекты и потенциальные уязвимости на основе статического анализа кода.

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

СУБД

Высокий уровень достоверности предупреждений

Средний уровень достоверности

Низкий уровень достоверности

Всего

Firebird

156

680

1045

1881

MySQL

902

1448

2925

5275

PostgreSQL

611

1432

1576

3619

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

При рассмотрении числа предупреждений по отношению к количеству строк кода, Firebird и PostgreSQL показали примерно одинаковые результаты (у PostgreSQL много предупреждений в автосгенерированном коде). В MySQL число предупреждений немного выше, но не существенно. Другая ситуация наблюдается при попытке ручной проверки типовых предупреждений. Например, MySQL присвоено 3 штрафных балла за проблемы затирания приватных данных, 1 штрафной балл за отсутствие проверки валидности указателя, возвращаемого malloc, 3 штрафных балла за использование потенциально нулевого указателя, 2 балла за подозрительное использование элементов перечислений, 2 балла за неверное вычисление размера блока памяти и 2 балла за пропущенное ключевое слово throw.

В свою очередь, PostgreSQL получил лишь 3 штрафных балла за использование потенциально нулевого указателя, а Firebird получил 1 штрафной балл за подозрительное использование элементов перечислений, 2 балла за вызов неверного оператора освобождения памяти и 1 балл за использование потенциально нулевого указателя. В итоге, меньше всего штрафных баллов получил PostgreSQL - 3, на втором месте Firebird - 4 и худший результат показал MySQL - 13 штрафных баллов.

С учётом того, что в PostgreSQL выявлено достаточно много предупреждений в автосгенерированном коде, а отрыв в один бал от Firebird вызван проблемой среднего уровня достоверности, решено поделить первое место между PostgreSQL и Firebird.

  1. Главная ссылка к новости (https://www.viva64.com/ru/b/05...)
  2. OpenNews: Итоги проверки Tizen в статическом анализаторе PVS-Studio (реклама)
  3. OpenNews: Анализатор PVS-Studio бесплатно доступен экспертам по безопасности (реклама)
  4. OpenNews: Эксперимент по выявлению уязвимостей во FreeBSD при помощи PVS-Studio (реклама)
  5. OpenNews: Использование PVS-Studio для поиска дефектов безопасности (реклама)
  6. OpenNews: Методы работы и история возникновения анализатора кода PVS-Studio (реклама)
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: pvs-studio
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Показать все | RSS
 
  • 1.1, Дуплик, 13:42, 14/12/2017 [ответить] [смотреть все]     [к модератору]
  • –9 +/
    Оно и понятно, MySQL та ещё дрянь Не зря только KDE шники её в составе своей DE... весь текст скрыт [показать]
     
     
  • 2.13, Аноним, 14:17, 14/12/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +2 +/
    О как, MySQL уже включили в состав KDE Applications Закнчивай уже грибы жрать ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.61, виндотролль, 18:01, 14/12/2017 [^] [ответить] [смотреть все]    [к модератору]  
  • +6 +/
    MariaDB, но суть та же

    [code]
    [~]$ pacman -Si akonadi
    Repository      : extra
    Name            : akonadi
    Version         : 17.08.3-3
    Description     : PIM layer, which provides an asynchronous API to access all kind of PIM data
    Architecture    : x86_64
    URL             : https://community.kde.org/KDE_PIM/Akonadi
    Licenses        : LGPL
    Groups          : None
    Provides        : akonadi-client
    Depends On      : kio  kitemmodels  mariadb  hicolor-icon-theme
    Optional Deps   : postgresql: PostgreSQL backend
    Conflicts With  : akonadi-client
    Replaces        : akonadi-client
    Download Size   : 2.30 MiB
    Installed Size  : 9.75 MiB
    Packager        : Antonio Rojas <arojas@archlinux.org>
    Build Date      : Thu 07 Dec 2017 06:41:09 AM EST
    Validated By    : MD5 Sum  SHA-256 Sum  Signature
    [/code]

     
     
  • 4.77, Аноним, 22:33, 14/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +3 +/
    CODE pkg options akonadi akonadi - MYSQL off akonadi - PGSQL off ak... весь текст скрыт [показать]
     
     
  • 5.85, Аноним, 08:42, 15/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Глюкавенько работает Раньше тоже юзал sqlite, сейчас переключился на mariadb О... весь текст скрыт [показать]
     
     
  • 6.106, MBG, 21:30, 15/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    А в переписке девелоперы аконади говорили, что не пытались и от помощи отказа... весь текст скрыт [показать]
     
  • 2.27, Аноним, 15:12, 14/12/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –13 +/
    Зачем эти люди тестировали MySQL, когда есть Percona MySQL давно никому не нуже... весь текст скрыт [показать] [показать ветку]
     
  • 2.59, Fantomas, 17:45, 14/12/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –3 +/
    В Постгре только сейчас появилась нормальная репликация и то только мастер-слейв... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.63, Аноним, 18:46, 14/12/2017 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Юзаю потоковую репликацию уже х.з. мколько лет.
     
  • 3.72, Вареник, 21:22, 14/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Только сейчас появились полноценные конфигурации кластера Несколько лет как п... весь текст скрыт [показать]
     
  • 3.74, Аноним, 21:27, 14/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    В постгрес нормальная репликация появилась давно, по сути в 8 0 уже был Warm sta... весь текст скрыт [показать]
     
  • 3.76, Андрей, 21:58, 14/12/2017 [^] [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    А толку от бажного функционала?
     
  • 1.2, Аноним, 13:44, 14/12/2017 [ответить] [смотреть все]     [к модератору]  
  • +5 +/
    а MySQL в этом случае остаётся на третьем месте или автоматически занимает осво... весь текст скрыт [показать]
     
     
  • 2.4, Andrey Mitrofanov, 13:48, 14/12/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Не главное -- это, где посадки, пожизненные дисквалификации, лишения флага и звё... весь текст скрыт [показать] [показать ветку]
     
  • 1.10, commiethebeastie, 14:11, 14/12/2017 [ответить] [смотреть все]    [к модератору]  
  • +10 +/
    Сравнили firebird и postgres, у моего hello world'а еще меньше ошибок.
     
     
  • 2.15, A.Stahl, 14:32, 14/12/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +11 +/
    Так ведь цель не в сравнении, а в рекламе...
     
  • 2.35, Аноним, 15:54, 14/12/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –2 +/
    И что там такого радикального кроме расширений и многофайловости А если взять п... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.49, commiethebeastie, 16:44, 14/12/2017 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Издеваетесь? В огнептице даже репликации нет.
     
     
  • 4.58, анон, 17:30, 14/12/2017 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    действительно, такая мелочь и отсутствует.
     
  • 4.60, Аноним, 17:54, 14/12/2017 [^] [ответить] [смотреть все]    [к модератору]  
  • –10 +/
    Как будто в постгресе есть нормальная репликация.
     
     
  • 5.73, Вареник, 21:23, 14/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Есть конечно Полная, выборочная, мастер-мастер ... весь текст скрыт [показать]
     
  • 4.107, Аноним, 18:47, 16/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    На самом деле есть, но она не встроенная в движок и потому плохая что-то типа... весь текст скрыт [показать]
     
  • 1.48, anonymous, 16:43, 14/12/2017 [ответить] [смотреть все]    [к модератору]  
  • +9 +/
    Погонял на паре проектов. Ну что я могу сказать? Чуть получше clang-analyzer. Нашёл пару бесполезных условий, ну и кучу ложных срабатываний. Особенно не дружит с дефайнами и тем, что родил bison. Прога может и полезна, но ценник не радует совсем. Как-то слишком много за обычную утилиту.
     
     
  • 2.65, Andrey_Karpov, 19:24, 14/12/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Предлагаю ради спортивного интереса более подробно поговорить про ложные срабаты... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.66, anonymous, 19:34, 14/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Я бы рад, но ключик уже того И да, из спортивного интереса как-то несерьёзно ... весь текст скрыт [показать]
     
  • 3.67, anonymous, 19:47, 14/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Но чтобы не быть голословным, вот один пример ложного срабатывания, который мозо... весь текст скрыт [показать]
     
     
  • 4.70, Andrey_Karpov, 20:47, 14/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Отличать он функции умеет Но есть ряд функций, с волшебными именами, которые ... весь текст скрыт [показать]
     
     
  • 5.78, Ordu, 01:22, 15/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    А проверить любую функцию с именем abort на предмет того, не является ли она no-... весь текст скрыт [показать]
     
     
  • 6.92, Andrey_Karpov, 09:42, 15/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Всё верно говорите Анализатор по возможности заглядывает в функции и учитывает ... весь текст скрыт [показать]
     
     
  • 7.99, Ordu, 17:51, 15/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Конкретно с этим случаем ведь не нужен никакой особый межмодульный анализ Доста... весь текст скрыт [показать]
     
     
  • 8.101, Andrey_Karpov, 19:15, 15/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    То, про что вы говорите, мы называем базой разметки функций Про это я писал в с... весь текст скрыт [показать]
     
  • 6.103, anonymous, 19:44, 15/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Уже давно есть Почему-то тот же QtCreator спокойно переходит на неё по F2, а не... весь текст скрыт [показать]
     
     
  • 7.105, Ordu, 20:01, 15/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    F2 -- это сохранить файл Какое это отношение имеет к проанализировать функци... весь текст скрыт [показать]
     
  • 5.102, anonymous, 19:40, 15/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Это частный пример Если для каждого ошибочного срабатывания набирать по 5 , то ... весь текст скрыт [показать]
     
     
  • 6.104, Andrey_Karpov, 19:47, 15/12/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Анализатор PVS-Studio часто требует настройки Как и любой другой анализатор По... весь текст скрыт [показать]
     
     ....нить скрыта, показать (12)

  • 1.71, Andrey_Karpov, 20:50, 14/12/2017 [ответить] [смотреть все]     [к модератору]  
  • –7 +/
    Пользуясь случаем, приглашаю всех почитать статью PVS-Studio 2018 CWE, Java, R... весь текст скрыт [показать]
     
     
  • 2.93, Аноним, 10:55, 15/12/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +2 +/
    > Пользуясь случаем

    Сколько заплатил опеннету за "случай"?

     
  • 1.82, лютый жабист__, 05:24, 15/12/2017 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    По-моему надо было Монгу проверить, у неё рыночная доля 80%, а FireBird видел 1 раз в махровом недоынтырпрайзе.
     
     
  • 2.108, Гоги, 19:56, 16/12/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Монга - лютая хипстота, хайп из пука Фиребирд - какой-никакой, а коммерческий д... весь текст скрыт [показать] [показать ветку]
     
  • 1.83, Аноним, 07:18, 15/12/2017 [ответить] [смотреть все]    [к модератору]  
  • –2 +/
    sqlite не включили чтобы сильно не ползорить остальных?
     
     
  • 2.84, лютый жабист__, 07:59, 15/12/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Просто эталонный код На чём основаны Ваши фантазии ... весь текст скрыт [показать] [показать ветку]
     
  • 2.109, пох, 23:47, 17/12/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    бгг но на самом деле в sqlite половина кода - автогенеренная, там пользы от с... весь текст скрыт [показать] [показать ветку]
     
  • 1.94, Andrey_Karp0v, 11:46, 15/12/2017 [ответить] [смотреть все]    [к модератору]  
  • +/
    А что насчёт https://scan.coverity.com/
     
     
  • 2.98, Andrey_Karpov, 16:36, 15/12/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –2 +/
    Хороший и очень дорогой инструмент Впрочем, не так уж он и хорош Иначе, не был... весь текст скрыт [показать] [показать ветку]
     
  • 1.95, Аноним, 11:46, 15/12/2017 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    мне больше cppcheck нравится
     
  • 1.96, Casm, 12:03, 15/12/2017 [ответить] [смотреть все]    [к модератору]  
  • +/
    Для достоверности не хватает анализа кода самого PVS-Studio
     
     
  • 2.97, Andrey_Karpov, 16:33, 15/12/2017 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Проверяем исходный код плагина PVS-Studio с помощью PVS-Studio - https habraha... весь текст скрыт [показать] [показать ветку]
     
  • 1.110, Мирон, 06:12, 18/12/2017 [ответить] [смотреть все]     [к модератору]  
  • +/
    Всё хорошо, но Постгресс глубокая база Там по - настоящему знать надо, чтобы то... весь текст скрыт [показать]
     

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


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