• Ложные срабатывания в PVS-Studio: как глубока кроличья нора

      Единорог PVS-Studio и GetNamedSecurityInfo

      Наша команда оказывает быструю и эффективную поддержку клиентов. В поддержке принимают участие только программисты, так как вопросы нам тоже задают программисты и над многими из них приходится подумать. Хочется описать одно из недавних обращений в поддержку на тему ложного срабатывания, которое привело к целому небольшому исследованию описанной в письме проблемы.
      Читать дальше →
    • История о том, как мы иконку PVS-Studio меняли



        Релиз 7.0 ознаменовал новую веху в истории анализатора PVS-Studio – теперь доступен анализ не только кода, написанного на C, C++, C#, но также и Java. Кроме этого глобального нововведения продолжают улучшаться и дорабатываться существующие механизмы анализа, добавляются диагностические правила. Было ещё одно глобальное изменение, которое вы навряд ли пропустили. Мы изменили иконку.

        Примечание. В статье вы не найдёте хитрых приёмов или советов по разработке иконок. Цель статьи немного в ином – рассказать историю, и по возможности сделать это интересно.
        Читать дальше →
      • Неопределённое поведение и правда не определено

        • Перевод
        Термином «неопределённое поведение» в языке C и C++ обозначают ситуацию, в которой буквально «чего только не бывает». Исторически, к неопределённому поведению относили случаи, когда прежние компиляторы для C (и архитектуры на нём) вели себя несовместимым образом, и комитет по разработке стандарта, в своей безграничной мудрости, решил ничего не решать по этому поводу (т.е. не отдавать предпочтение какой-то одной из конкурирующих реализаций). Неопределённым поведением также называли возможные ситуации, в которых стандарт, обычно столь исчерпывающий, не предписывал никакого конкретного поведения. У этого термина есть и третье значение, которое в наше время становится всё более актуальным: неопределённое поведение — это возможности для оптимизации. А разработчики на C и C++ обожают оптимизации; они настойчиво требуют, чтобы компиляторы прикладывали все усилия для ускорения работы кода.

        Данная статья была впервые опубликована на сайте Cryptography Services. Перевод публикуется с разрешения автора Томаса Порнина (Thomas Pornin).
        Читать дальше →
      • Для тех, кто хочет поиграть в детектива: найди ошибку в функции из Midnight Commander

          Найди ошибку!


          Приглашаем попробовать найти ошибку в очень простой функции из проекта GNU Midnight Commander. Зачем? Просто так. Это забавно и интересно. Хотя нет, мы соврали. Мы в очередной раз хотим продемонстрировать ошибку, которую с трудом находит человек в процессе code review, но легко находит статический анализатор кода PVS-Studio.
          Читать дальше →
        • Шестая проверка Chromium, послесловие

            строгий единорог

            В начале 2018 года в нашем блоге появился цикл статей, посвящённый шестой проверке исходного кода проекта Chromium. Цикл включает в себя 8 статей, посвященных ошибкам и рекомендациям по их предотвращению. Две статьи вызвали бурное обсуждение, и до сих пор на почту мне изредка приходят комментарии касательно тем, затронутых в них. Пожалуй, следует дать некоторые дополнительные пояснения и, как говорится, расставить точки над i.
            Читать дальше →
          • PVS-Studio ROI

              PVS-Studio ROI

              Время от времени нам задают вопрос, какую пользу в денежном эквиваленте получит компания от использования анализатора PVS-Studio. Мы решили оформить ответ в виде статьи и привести таблицы, которые покажут, насколько анализатор может быть полезен. Мы не можем в статье доказать абсолютную достоверность всех расчётов, но думаем, читатель согласится с нашими размышлениями, и это поможет принять решение в вопросе приобретения лицензии.
              Читать дальше →
            • Ищем ошибки в исходном коде Amazon Web Services SDK для .NET

                Picture 1


                Приветствую всех любителей покритиковать чужой код. :) Сегодня в нашей лаборатории новый материал для исследования — исходный код проекта AWS SDK для .NET. В своё время мы писали статью о проверке AWS SDK для C++. Тогда не нашлось ничего особо интересного. Посмотрим, чем нас порадует .NET версия AWS SDK. Хорошая возможность в очередной раз продемонстрировать возможности анализатора PVS-Studio, а также сделать мир немного совершеннее.
                Читать дальше →
              • PVS-Studio для Java

                  PVS-Studio для Java

                  В седьмой версии статического анализатора PVS-Studio мы добавили поддержку языка Java. Пришло время немного рассказать, как мы начинали делать поддержку языка Java, что у нас получилось и какие дальнейшие планы. И, конечно, в статье будут приведены первые испытания анализатора на открытых проектах.
                  Read more →
                • PVS-Studio 7.00

                    PVS-Studio C#\Java\C++Сегодня важный день – после 28 релизов шестой версии мы выпускаем PVS-Studio 7.00, где ключевым новшеством является поддержка языка Java. Однако за 2018 год накопилось много других важных изменений, касающихся С++, С#, инфраструктуры и поддержки стандартов кодирования. Поэтому предлагаем вашему вниманию заметку, которая обобщает основные изменения, произошедшие в PVS-Studio за последнее время.
                    Читать дальше →
                  • PVS-Studio и Bug Bounties on Free and Open Source Software

                      PVS-Studio дарит багиЕвропейский союз стартовал в январе очередную большую охоту за ошибками в открытых программных проектах. Суммарный призовой фонд составляет около 850 тысяч евро. А теперь даём подсказку. Одним из способов поиска ошибок в исходном коде программ является использование статических анализаторов кода. Например, можно использовать для этих целей PVS-Studio, тем более что недавно был предложен новый вариант его бесплатного лицензирования для открытых проектов.
                      Читать дальше →
                      • +30
                      • 4,6k
                      • 1

                    Самое читаемое