Вы все еще пишете многопоточку на C++ с ошибками синхронизации?

Привет, коллеги! В этой статье я покажу свой подход к написанию многопоточного кода, который помогает избежать типовых ошибок, связанных с использованием базовых примитивов синхронизации. Демонстрация идеи будет проходить на живых примерах кода на современном C++. Большинство описанных решений я...

Все блоги / Про интернет

PVS-Studio и тренды 2023 года. Что волнует наших клиентов?

Начало года — традиционное время подводить итоги работы, делать выводы и строить планы на текущий и последующие годы. В этой статье речь пойдёт о том, какие открытия сделала наша компания в 2023, какие задачи стоят перед российским IT-бизнесом, и как PVS-Studio может помочь решить какую-то их...

Все блоги / Про интернет

Действительно ли C++ — лучший язык, чтобы выстрелить себе в ногу?

В 2023 году одной из главных IT-новостей стала публикация гайда от Агентства национальной безопасности (NSA) США, в котором языки С/C+ признавались «опасными» и требующими перехода на «безопасные» C#, Go, Java, Ruby и Swift. В этой статье я с позиции Security Champion в KasperskyOS, собственной...

Все блоги / Про интернет

Какую статью хочется прочитать в нашем блоге на тему C++, C# или Java?

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

Все блоги / Про интернет

GPT-3 нашёл 213 Security Vulnerabilities… Или не нашёл

Этот текст является развёрнутым комментарием к статье "Я нашёл 213 уязвимостей безопасности в кодовой базе при помощи GPT-3". Читать дальше →...

Все блоги / Про интернет

Меньше багов богу разработки: плюсы, минусы и нюансы имплементации подхода Secure by design

По дефолту разработчики, стремясь достичь безопасности приложения, идут операционным путем: пишут тесты и делают ревью, чтобы устранять уязвимости уже по факту их выявления. Однако существует подход, в рамках которого классический комплекс мер становится не нужен, — все эти требования будут неявно...

Все блоги / Про интернет

Обрабатывать ли в PVS-Studio вывод других инструментов?

Анализатор PVS-Studio умеет "схлопывать" повторяющиеся предупреждения. Предоставляет возможность задать baseline, что позволяет легко внедрять статический анализ в legacy-проекты. Стоит ли предоставить эти возможности для сторонних отчётов? Читать дальше →...

Все блоги / Про интернет

[Перевод] Как собрать зловредный компилятор

А вы знали, что бывает такая атака на компилятор через бэкдор, защититься от которой невозможно? В этом посте я покажу вам, как реализовать такую атаку менее чем в 100 строках кода. Кен Томпсон, создатель операционной системы Unix, рассказывал о такой атаке еще в 1984 году в своей лекции по поводу...

Все блоги / Про интернет

Развитие инструментария С++ программистов: статические анализаторы кода

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

Все блоги / Про интернет

[Перевод] Безопасное использование C++

От переводчика. Данный текст является переводом документа Safer Usage Of C++, выложенного в общий доступ командой Chromium/Chrome из компании Google. Текст активно обсуждался на Reddit, и команда PVS-Studio решила, что аудитории Habr-а может быть интересно познакомиться с его русскоязычным...

Все блоги / Про интернет

Зачем нужен отчёт MISRA Compliance и как его получить в PVS-Studio?

Если вы не понаслышке знаете о MISRA и хотели бы понимать, соответствует ли ваш проект какому-то из стандартов ассоциации MISRA, то есть решение. Имя ему - MISRA Compliance. С недавних пор PVS-Studio научился генерировать отчёт соответствия по этому стандарту, и хочется поделиться тем, как это...

Все блоги / Про интернет

Теперь PVS-Studio ещё лучше знает, что за зверь такой – strlen

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

Все блоги / Про интернет

Как PVS-Studio защищает от поспешных правок кода

Хотя только недавно была заметка про проект CovidSim, есть хороший повод вновь про него вспомнить и продемонстрировать пользу регулярного использования PVS-Studio. Бывает, что все мы спешим и вносим правки в код, потеряв сосредоточенность. Статический анализатор может оказаться здесь хорошим...

Все блоги / Про интернет

Пример, как в PVS-Studio появляются новые диагностики

Пользователи иногда спрашивают, как появляются новые диагностики в статическом анализаторе PVS-Studio. Мы отвечаем, что черпаем вдохновение из разнообразнейших источников: книг, стандартов кодирования, собственных ошибок, писем наших пользователей и так далее. Сегодня мы придумали новую интересную...

Все блоги / Про интернет

Обработка дат притягивает ошибки или 77 дефектов в Qt 6

Относительно недавно состоялся релиз фреймворка Qt 6, и это стало поводом вновь проверить его с помощью PVS-Studio. В статье будут рассмотрены различные интересные ошибки, например, связанные с обработкой дат. Обнаружение всех этих ошибок хорошо демонстрирует пользу, которую может получить проект...

Все блоги / Про интернет

Espressif IoT Development Framework: 71 выстрел в ногу

Один из наших читателей обратил наше внимание на Espressif IoT Development Framework. Он нашёл ошибку в коде проекта и поинтересовался, смог бы её найти статический анализатор PVS-Studio. Именно эту ошибку анализатор пока найти не может, зато нашёл множество других. По мотивам этой истории и...

Все блоги / Про интернет

Конструктор Lego и объектно-ориентированное программирование в Tcl. Разбор сертификата x509.v3

Часто приходится слышать, что скриптовому языку Tcl не хватает поддержки объектно-ориентированного стиля программирования. Сам я до последнего времени мало прибегал к объектно-ориентированному программированию, тем более в среде Tcl. Но за Tcl стало обидно. Я решил разобраться. И оказалось, что...

Все блоги / Про интернет

Почему обзоры кода — это хорошо, но недостаточно

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

Все блоги / Про интернет

Назад