PVS-Studio rus @pvsstudio_rus Channel on Telegram

PVS-Studio rus

@pvsstudio_rus


Тот самый анализатор с Хабра:
https://pvs-studio.ru/ru/

PVS-Studio rus (Russian)

Вы когда-нибудь задумывались о том, как улучшить качество вашего кода и сделать его более надежным? Если да, то канал "PVS-Studio rus" - это то, что вам нужно! PVS-Studio - это инструмент статического анализа кода, который поможет вам обнаружить потенциальные проблемы и ошибки в исходном коде на различных языках программирования. Наш канал предлагает вам уникальные статьи, советы, обновления и примеры использования PVS-Studio для повышения эффективности вашей разработки. Будь то C, C++, C#, Java или Python - мы покрываем множество языков и готовы поделиться с вами экспертными знаниями и лучшими практиками. Присоединяйтесь к нам, чтобы быть в курсе последних тенденций в области статического анализа кода и стать частью активного сообщества разработчиков, стремящихся к совершенствованию своих проектов. Не упустите шанс улучшить свой код и стать более профессиональным разработчиком. Присоединяйтесь к "PVS-Studio rus" прямо сейчас!

PVS-Studio rus

16 Feb, 12:00


#Задача_PVS #programming #csharp

PVS-Studio rus

15 Feb, 12:00


#mem_PVS #programming #bugs

PVS-Studio rus

14 Feb, 12:01


Помните, мы вчера анонсировали вебинар? Так вот, самое время раскрыть все карты! 😃

Наш специальный гость — Дмитрий Свиридкин, автор той самой книги "Путеводитель C++ программиста по неопределённому поведению".

На этом вебинаре мы обсудим грани, отделяющие корректный C++ код от некорректного, попросим рассказать историю написания книги, поговорим о развитии языка и его будущем.

🗓27 февраля, 14:00

Ссылка на регистрацию 👈🏻

#вебинар #cpp

PVS-Studio rus

14 Feb, 08:55


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

В статье мы расскажем о потенциальных ошибках, которые нам удалось выявить в продукте от Microsoft.

Переходите по ссылке 🔗

#csharp #статья

PVS-Studio rus

14 Feb, 07:00


🎉14 февраля — День компьютерщика

Если у вас нет парочки, это не повод сидеть дома и грустить 😏 Ведь этот день — профессиональный праздник компьютерщика!

Почему именно 14-го февраля? Потому что 14 февраля 1946 года научному миру и всем заинтересованным был продемонстрирован первый реально работающий электронный компьютер ENIAC I.

#праздник

PVS-Studio rus

13 Feb, 12:51


⚡️Важная новость

Друзья, мы рады сообщить, что совсем скоро состоится наш вебинар! А именно 27 февраля.

Но на этот раз формат непростой 😏 Мы пригласили специального гостя.

Попробуйте угадать кого именно! Пишите ответ в комментариях (кто угадал, тот молодец ❤️)

PVS-Studio rus

13 Feb, 10:46


Этой статьёй мы начинаем трилогию об игровом движке Nau Engine.

В первой части мы сосредоточимся на его функциональности, уделяя особое внимание трём ключевым блокам ошибок: проблемам с памятью, копипасте и логическим ошибкам.

Переходите по ссылке 🔗

#статья #cpp #gamedev

PVS-Studio rus

13 Feb, 07:00


🎉В этот день в 2002 году мир программирования узнал о новой платформе — .NET Framework. Разработчики наконец-то получили инструмент для создания мощных приложений на Windows.

Кстати, в нашем блоге есть теоретические и практические статьи по теме .NET. Почитать можно тут.

#праздник #dotnet

PVS-Studio rus

12 Feb, 11:37


Распараллелить сборку большого проекта на несколько компьютеров? Легко! Разбираемся, как использовать Unreal Horde — новый инструмент внутри Unreal Engine 5.5. В том числе мы посмотрим, как с его помощью запустить анализ PVS-Studio.

Переходите по ссылке 🔗

#статья #gamedev

PVS-Studio rus

12 Feb, 08:00


#Задача_PVS #programming #java

PVS-Studio rus

11 Feb, 11:58


🚀Рассказываем про новую интеграцию!

Совместно с SECURITM мы сделали интеграцию позволяющую управлять в едином окне SECURITM результатами сканирования PVS-Studio, путём импорта отчета от сканера.

SECURITM — новая SGRC система для управления рисками, аудитами, соответствием, активами, уязвимостями, планированием, опросами и автоматизацией на единой платформе. Она заменяет сложные решения, такие как Excel или Enterprise sGRC системы, предлагая простоту, скорость и доступность.

SECURITM обеспечивает:

- Повышение защищенности компании благодаря правильной оценке рисков безопасности
- Минимизацию затрат на ИБ за счет обоснованного распределения ресурсов
- Снижение ручного труда службы ИБ через автоматизацию рутинных операций
- Повышение эффективности работы за счет исключения дублирования и автоматизации

И многое другое!

Интеграция позволяет:

- Собирать в едином окне результаты сканирования различных проектов разработки;
- Заводить задачи команде разработки на устранение уязвимостей в таскере securitm или отправлять их в Jira;
- Объединить AppSec и инфраструктурную безопасность, что особенно полезно если эти направления под контролем единой службы ИБ.

Мы верим, что эта интеграция позитивно скажется на использовании анализатора. Ждите больше интересных новостей! 😉

#PVS_Studio #интеграция

PVS-Studio rus

11 Feb, 11:34


Ответ на задачу: в качестве первого аргумента метода Trace использована некорректная строка формата. Обратите внимание на использование соответствующего параметра этого метода. В эту строку подставляются аргументы. Вот только аргументы должны подставляться в плейсхолдеры вида {0}, {1} и т. д. В данной строке подобные плейсхолдеры отсутствуют. В итоге использования такой строки формата будет выброшено исключение типа System.FormatException о некорректном формате.

PVS-Studio rus

10 Feb, 11:06


🎤Разбираем актуальность ГОСТ Р 71207-2024 и его пользу для бизнеса.

Полное видео смотри по ссылке: https://vkvideo.ru/video-11805870_456239499 🔗

#видео #ГОСТ #PVS_Studio

PVS-Studio rus

10 Feb, 06:31


Ответ на задачу: в первом блоке производятся действия с переменной localArchives, в следующем однотипном фрагменте — с localFiles. И если вы добросовестно изучите этот код, а не бегло пробежитесь, как это частенько бывает при Code Review, то заметите место, где забыли заменить переменную localArchives.

PVS-Studio rus

09 Feb, 12:00


#mem_PVS #programming

PVS-Studio rus

08 Feb, 08:00


#Задача_PVS #programming #cpp

PVS-Studio rus

07 Feb, 11:10


Разработка модификаций для игры Minecraft — очень интересное и приятное хобби. В этой статье мы посмотрим на ошибки в модификациях для нашей любимой игры на примере проекта Custom NPC+. Воспроизведём их в игре и уроним Minecraft.

Переходите по ссылке 🔗

#статья #java #gamedev

PVS-Studio rus

06 Feb, 13:37


Друзья, напоминаем, что у вас есть возможность получить книгу "Вредные советы для С++ программистов" от Андрея Карпова, сооснователя PVS-Studio.

Подробнее по ссылке: https://habr.com/ru/companies/pvs-studio/news/878234/

PVS-Studio rus

06 Feb, 11:31


Не так давно вышла статья в которой мы рассказали как изменился за предыдущий год наш анализатор.

Но меняется не только анализатор, но и наша команда и компания в целом!

У нас прошла внутренняя конференция где мы узнали об итогах 2024 года и грандиозных планах на 2025 год и не только 😏

Статический анализ кода - это мы!

#видео #PVS_Studio

PVS-Studio rus

06 Feb, 06:32


Ответ на задачу: проблема находится в строке delete [] data;. А именно в указателе на void (потере настоящего типа). Дело в том, что с точки зрения стандарта С++ такое удаление массива является неопределённым поведением.

PVS-Studio rus

05 Feb, 13:58


PVS-Studio rus pinned «❗️СРОЧНЫЕ НОВОСТИ Друзья, мы обновили наш стикерпак! Добавили туда новых единорогов и даже багов. Сохраняйте себе, делитесь с коллегами 😉 Ждем фидбек!»

PVS-Studio rus

05 Feb, 13:58


❗️СРОЧНЫЕ НОВОСТИ

Друзья, мы обновили наш стикерпак! Добавили туда новых единорогов и даже багов. Сохраняйте себе, делитесь с коллегами 😉

Ждем фидбек!

PVS-Studio rus

05 Feb, 07:00


Пришло время разбирать новый термин! Мы в PVS-Studio считаем, что про опасные уязвимости забывать не стоит. Поэтому сейчас мы расскажем про одну из них. А именно про XXE-атаку. Подробнее по ссылке 🔗

#термин

PVS-Studio rus

04 Feb, 08:51


Статический анализ важно проводить регулярно, но что делать, если анализ всего проекта занимает много времени? 🤔

В статье отвечаем на этот вопрос и делимся рецептами для конкретных ситуаций.

#PVS_Studio #статья

PVS-Studio rus

04 Feb, 07:00


#Задача_PVS #programming #csharp

PVS-Studio rus

03 Feb, 11:42


Из-за чего создаются множественные копии объектов? Разбираемся в новом видео! ☝️

Подробнее про диагностику V1043: https://pvs-studio.ru/ru/docs/warnings/v1043/

#cpp #видео

PVS-Studio rus

01 Feb, 07:00


🎉1 февраля — День "Измените свой пароль"

Некоторые пользователи частенько ставят лёгкие или одинаковые пароли на разные ресурсы. И именно в этот день следует позаботиться об усилении защиты информации от несанкционированного доступа.

Чтобы не запоминать десятки сложных наборов букв и не записывать их на бумажку, существуют менеджеры паролей. Но вот вопрос, а нет ли в них ошибок? У нас как раз есть статья о проверке кода проекта Bitwarden.

#праздник

PVS-Studio rus

31 Jan, 09:21


PPSSPP — один из самых популярных эмуляторов для PlayStation Portable (PSP), который позволяет нам вновь окунуться в атмосферу любимых игр, но уже на современных устройствах. Однако чтобы играть без сбоев и лагов, нужно убедиться, что код эмулятора хорошо написан.

Устраиваем проверку коду по ссылке 🔎

#cтатья #cpp #PPSSPP

PVS-Studio rus

30 Jan, 07:00


#Задача_PVS #programming #java

PVS-Studio rus

21 Jan, 11:16


Новый разбор проекта на очереди!

Jellyfin — это бесплатный медиасервер с открытым исходным кодом, является альтернативой Emby и Plex. В этой статье мы рассмотрим диагностику, у которой было больше всего срабатываний в коде Jellyfin.

Переходите по ссылке 🔗

#csharp #статья

PVS-Studio rus

21 Jan, 07:00


🎉21 января — День, когда выпустили Java 1.0.

💻День, когда компьютеры стали говорить "Hello, world!" на новом языке. Всё благодаря компании Sun Microsystems, которая в 1996 году выпустила первую официальную версию Java.

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

#праздник #java

PVS-Studio rus

20 Jan, 12:32


Ответ на задачу: суть в том, что потеряли инструкцию return или присвоение переменной boundingRect.

PVS-Studio rus

20 Jan, 08:37


🚀 Рассказываем про новые диагностики

С++ разработчики, у нас отличные новости — в релизе 7.34 появилось новое диагностическое правило V1116.

Оно предназначено для обнаружения ситуаций, когда исключения создаются без поясняющих сообщений. Рассмотрим пример:
void DoSomething(const char *val)
{
if (!val) throw std::runtime_error { "" };
}

void Function()
{
const char *val = ....;
try
{
DoSomething(val);
}
catch (std::runtime_error &err)
{
std::cerr << err.what() << std::endl;
}
}


В функции DoSomething в случае возникновения ошибки бросается исключение с пустым сообщением, которое затем попадёт в std::cerr. Написав такой код, разработчик словно оставил коллегам послание: "Счастливой отладки". Это усложнит для них понимание того, что именно вызвало сбой.

Ситуацию можно исправить следующим образом:
if (!val)
{
throw std::runtime_error
{
"[DoSomething]: "
"the 'val' pointer was nullptr."
};
}

Теперь вы получите сообщение, которое объясняет, что именно пошло не так.

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

#cpp #PVS_Studio

PVS-Studio rus

19 Jan, 09:00


#mem_PVS #programming

PVS-Studio rus

18 Jan, 12:00


#Задача_PVS #programming #java

PVS-Studio rus

17 Jan, 09:16


💻Добро пожаловать на пятый выпуск нашего дайджеста, посвящённого новостям и событиям в мире .NET! Как обычно, набралось множество материала, а в этот раз ещё и новый .NET вышел.

Команда PVS-Studio рада представить вам подборку самых интересных и полезных материалов!

Переходите по ссылке 🔗

#csharp #статья

PVS-Studio rus

17 Jan, 07:02


Ответ на задачу: для удаления повторяющихся элементов используют метод LINQ Distinct. Он не изменяет исходную коллекцию, а возвращает новую. Если не использовать возвращаемое значение, вызов бессмыслен. В данном примере результат Distinct следовало присвоить переменной query.

PVS-Studio rus

16 Jan, 08:48


В новом видео поговорим про критические ошибки 🐞

Более подробно можно послушать в этом докладе 👈🏻

#видео

PVS-Studio rus

16 Jan, 06:51


Ответ на задачу: в этом методе инициализации ссылочного поля m.blockDeviceMapping не произойдёт, если аргумент blockDevice будет равен null. Это поле инициализируется только в указанном методе, поэтому при вызове метода add у поля m.blockDeviceMapping произойдёт исключение NullPointerException.

PVS-Studio rus

14 Jan, 07:00


#Задача_PVS #programming #cpp

PVS-Studio rus

13 Jan, 13:19


Ответ на задачу: Переменная gps_dst->fill_opacity_fac присваивается сама себе. Скорее всего, имеет место быть опечатка, и в правой части присвоения должно быть другое выражение.

PVS-Studio rus

13 Jan, 06:54


🚀Рассказываем про новые диагностики

В новым релизе PVS-Studio — 7.34, команда C# анализатора сфокусировалась на улучшении Unity направления, но и про диагностики общего назначения не забывает. Сегодня разберем одну из таких – V3207.

В новой диагностике анализатор выявляет некорректное использование паттерна 'not A or B', связанного с путаницей в порядке операций.
Рассмотрим пример кода:
private void ShowWordDetails(string key)
{
if (key is not "" or null)
{
PanelReferenceBox.Controls.Clear();

CurrentWord = Words.Find(x => x.Name == key);
....
}
}

В начале метода присутствует проверка входного параметра 'key' на пустую строку или 'null'.

Но в логике условного выражения была допущена ошибка. Все дело в том, что приоритет оператора 'not' выше, чем у оператора 'or'. Вследствие этого отрицание не применяется к правой части выражения и если 'key' будет иметь значение 'null' – условие будет 'true'.

Вы еще не забыли про Unity? А мы все равно напомним! В этом релизе появилось сразу 4 новых Untiy-специфичных диагностических правила: V3208, V3209, V3210, V4007.

Но на этом мы не закончили улучшение анализа Unity проектов, ждите еще больше новых диагностик!

#csharp #PVS_Studio

PVS-Studio rus

12 Jan, 09:00


#mem_PVS #programming

PVS-Studio rus

11 Jan, 12:00


#Задача_PVS #programming #csharp

PVS-Studio rus

10 Jan, 07:00


10 января — День рождения Дональда Эрвина Кнута

Дональд Кнут — математик, учёный, автор монографии "Искусство компьютерного программирования".

Какие еще интересные факты вы знаете об этом человеке? Пишите в комментариях 😉

#праздник

PVS-Studio rus

09 Jan, 13:09


Ответ на задачу: при инициализации taxRates через transaction.summary?. допускается, что taxRates может быть null. Затем переменная используется в foreach, что при null приведёт к исключению NullReferenceException, так как у коллекции неявно вызывается GetEnumerator.

PVS-Studio rus

09 Jan, 07:00


Первая статья в новом году! В ней вспомним все подкасты прошлого года, в которых мы принимали участие.

Наши спикеры рассказали о бизнесе, статическом анализе, становлении компании и многом другом. Переходите по ссылке и слушайте! 😉

#статья #подкаст

PVS-Studio rus

08 Jan, 07:00


#Задача_PVS #programming #java

PVS-Studio rus

07 Jan, 07:00


А вот и новый термин! В этот раз рассматриваем термин из DevOps – непрерывную интеграцию или Continuous Integration. А о том, как анализатор PVS-Studio встраивается в CI можно прочитать в соответствующем разделе нашей документации по ссылке 😉