Бестиарий программирования
Open in Telegram
Наблюдения за жизнью ошибок в коде. Андрей Карпов. ГОСТ Р 71207-2024, ГОСТ Р 56939-2024, РБПО, Статический анализ кода Канал-дублёр в MAX: https://max.ru/join/3VWTp9apkQvTMSRQ__LGiTQ5NGVBj8p_tOpwlQO6vS8
Show more1 115
Subscribers
No data24 hours
No data7 days
-230 days
Posts Archive
Ещё на тему разбухшего vibe-кода. Смотрю проект Vib-OS. Потом про него статья будет. Это очень маленький проект, если убрать сторонние сущности и различные ресурсы, хранящиеся в виде массивов в коде. По делу там около 35 тысяч строк кода в 110 файлах.
Так вот, на эти 110 файлов я как начитал как минимум 4 одинаковых функции копирования строк.
static void str_copy(char *dst, const char *src, int max) {
int i = 0;
while (src[i] && i < max - 1) {
dst[i] = src[i];
i++;
}
dst[i] = '\0';
}
static void str_cpy(char *dst, const char *src, int max) {
int i = 0;
while (src[i] && i < max - 1) {
dst[i] = src[i];
i++;
}
dst[i] = '\0';
}
static void strcpy_safe(char *dst, const char *src, size_t max) {
size_t i = 0;
while (src[i] && i < max - 1) {
dst[i] = src[i];
i++;
}
dst[i] = '\0';
}
static inline char *strncpy_safe(char *dst, const char *src, size_t n) {
size_t i;
for (i = 0; i < n - 1 && src[i]; i++) {
dst[i] = src[i];
}
dst[i] = '\0';
return dst;
}
Видимо у ИИ который это делал, любимый напев – I Like to Move It, Move It :) Частое (местами совершенно бестолковое) копирование массивов. Причём реализованное циклами, а не через memcpy.Repost from PVS-Studio: поиск ошибок в коде
Наша команда работает еще над анализатором для JavaScript и TypeScript! 🔥
Приглашаем всех заинтересованных присоединиться к тестированию. В этой заметке все подробности 🔗
#js #ts #статья #тестирование
Может зато опечаток нет? Есть.
PVS-Studio: V560 A part of conditional expression is always false: btn_char == '+'. window.c 1713
Начал появляться код тех самых навайбкоденных проектов, который изменит мир и т.д. Ну а я начинаю потихоньку смотреть код этих проектов вообще и сквозь призму статического анализа в частности. Пока в глаза бросается, что код растянут и это мешает его восприятию. Например, человек бы так писать не стал, а воспользовался функцией
sprintf.
char seq[32];
int s = 0;
seq[s++] = ':';
seq[s++] = ' ';
seq[s++] = 'i';
seq[s++] = 'c';
seq[s++] = 'm';
seq[s++] = 'p';
seq[s++] = '_';
seq[s++] = 's';
seq[s++] = 'e';
seq[s++] = 'q';
seq[s++] = '=';
seq[s++] = '0' + i;
seq[s++] = ' ';
seq[s++] = 't';
seq[s++] = 't';
seq[s++] = 'l';
seq[s++] = '=';
seq[s++] = '6';
seq[s++] = '4';
seq[s++] = ' ';
seq[s++] = 't';
seq[s++] = 'i';
seq[s++] = 'm';
seq[s++] = 'e';
seq[s++] = '=';
/* Random-ish time 10-50ms */
int time_ms = 15 + (i * 7) % 30;
seq[s++] = '0' + (time_ms / 10);
seq[s++] = '0' + (time_ms % 10);
seq[s++] = ' ';
seq[s++] = 'm';
seq[s++] = 's';
seq[s++] = '\n';
seq[s] = '\0';Repost from PVS-Studio: поиск ошибок в коде
Команда PVS-Studio усердно работала над созданием статического анализатора кода для Go, и наконец мы рады объявить о начале открытого тестирования! Приглашаем всех заинтересованных присоединиться.
В этой заметке рассказываем, как это сделать 🔗
#go #тестирование #статья
Для C++ программистов и не только. Обзор 10 уроков, посвящённый написанию своего языка программирования. Полностью материалы бесплатно представлены здесь.
Один из способов подавления ложных срабатываний PVS-Studio, это специальные комментарии в коде. К сожалению, постепенно в коде могут накапливаться неактуальные комментарии подавления. Такое происходит, если код изменился и не вызывает более подозрения у анализатора. Или анализатор стал лучше понимать задумки программистов и более не выдаёт в каких-то местах срабатываний.
Поэтому мы реализовали в PVS-Studio механизм удаления неактуальных комментариев. Подробности в статье - Комментарии, которые пережили ошибки.
+2
Записи с ТБ Форум 2026 по теме РБПО:
1. Актуальные вопросы защиты информации. Организатор конференции ФСТЭК России.
2. Мастер-трек: Инструменты управления процессом РБПО.
3. Подходы и инструменты управления процессом РБПО.
Repost from PVS-Studio: поиск ошибок в коде
Финальный вебинар цикла!
Тема: "Сертификация процессов РБПО: требования ФСТЭК России, новые стандарты и практика"
На вебинаре разберем практику сертификации, новые национальные стандарты и методику подготовки, опыт компаний, а также подводные камни аудита, ресурсы и преимущества внедрения РБПО.
Приглашенные эксперты:
- Дмитрий Шмойлов, Head of Software Security, Kaspersky.
- Щербаков Алексей, руководитель центра кибербезопасности Платформы СберТех
- Виталий Вареница, руководитель сертификационной лаборатории
⏰Сегодня в 16:00
Регистрация по ссылке 🔗
#вебинар #рбпо
+3
Запись вебинара "Инструменты для разработчиков игр и не только".
Вместе с экспертами из Forgotten Empires и Playrix мы разобрались, какие инструменты входят в арсенал GameDev-команд, зачем они нужны и почему профилировщики играют ключевую роль в разработке. А бонусом — показали, как превратить ваш код в настоящий город.
Мы добавили в документацию раздел о использовании PVS-Studio в SourceCraft
SourceCraft — платформа, с помощью которой можно разрабатывать исходный код, управлять версиями, тестировать, собирать, развёртывать и сопровождать программные продукты. Сервис представляет собой систему управления репозиториями кода для Git с отслеживанием ошибок и пайплайном CI/CD.
Читатели Хабра думаю сразу вспомнят "Объяснить с SourceCraft" в блоках кода.
В документации объясняется как запустить анализатор PVS-Studio и как работать с SARIF-отчётами.
Соответствующий раздел: Использование PVS-Studio в SourceCraft
Вышел новый релиз PVS-Studio — 7.41. В нём улучшения для Unreal Engine, поддержка MISRA C 2023, обновление плагина для IntelliJ IDEA и другие полезные изменения.
На мой взгляд особого внимания заслуживает новый механизм "Удаление неактуальных маркеров подавления".
По мере развития анализатора или изменения анализируемого кода ложное предупреждение может перестать генерироваться, и маркеры подавления, содержащиеся в строках исходного кода для этого предупреждения, перестанут быть актуальными. Накопление неактуальных маркеров подавления засоряет код и может привести к тому, что появившееся в том же месте новое предупреждение останется незамеченным. Для очистки кодовой базы от неактуальных маркеров в пакете поставки анализатора PVS-Studio предусмотрена специальная утилита — pvs-fp-cleaner.
Зачем делать игры, которые увидят немногие? | Разбаговка #6
У нас в гостях Слава Грис, разработчик игр, блогер. В выпуске:
- Точка входа: История о том, как Слава оказался в геймдеве (спойлер: опыт не всегда стоит на первом месте).
- Дух андеграунда: Что движет автором, когда он создает игры не «для всех».
- Бизнес на коленке: Как инди-разработчику не затеряться в океане ежедневных релизов и найти своего игрока.
- Свобода vs Мейнстрим: Почему быть «маленьким» разработчиком — это суперсила, и зачем делать игры, которые поймут немногие.
Запись бонусный вебинара цикла "Вокруг РБПО" – Системы с конструктивной информационной безопасностью.
В конце 2025 года вступил в силу национальный стандарт «ГОСТ Р 72118 Защита информации. Системы с конструктивной информационной безопасностью. Методология разработки».
С помощью приглашенного эксперта — Екатерины Рудиной (аналитик департамента перспективных технологий «Лаборатории Касперского») — мы разобрались, в чем сходство и различие таких систем с безопасным ПО, как соотносятся создание систем с КИБ и разработка безопасного ПО, чем новый стандарт полезен в работе специалистов по ИБ различного профиля.
Смотри также сайт, о котором рассказала Екатерина – securitybydesign.ru.
Опубликована полная версия статьи (с комментариями участников): Итоги испытаний статических анализаторов исходного кода при организационной и методической поддержке ФСТЭК России.
P.S. Заодно напомню про нашу заметку: Кратко об итогах испытаний статических анализаторов исходного кода в 2025 году.
Запись вебинара: Статический анализ кода в методическом документе ЦБ РФ "Профиль защиты".
Описание. Методический документ "Профиль защиты (ПЗ) прикладного ПО автоматизированных систем и приложений кредитных организаций и некредитных финансовых организаций", опубликованный в декабре 2025 года, уточнил и расширил многие меры, направленные на разработку безопасных программных продуктов. Например, перечислены требования, предъявляемые к инструментальным средствам статического анализа кода. В ходе вебинара рассмотрели эти новые требования, а также причины, по которым полезно изучить ГОСТ Р 56939—2024 и ГОСТ Р 71207—2024 при реализации требований безопасности, изложенных в ПЗ.
Примечание. По окончании вебинара был задан вопрос о сертификации средств статического анализа. В качестве ответа уместно привести цитату из статьи "Итоги этапа «Домашнее задание» испытаний статических анализаторов под патронажем ФСТЭК России":
Важно отметить, что в настоящий момент ФСТЭК России не предъявляет каких-либо специальных требований к инструментам статического анализа, на соответствие которым возможно проводить сертификационные испытания инструментов. Как следствие, любые требования заказчиком наличия сертификата ФСТЭК России на инструмент статического анализа являются его частной инициативой (подробнее — в эфире канала AMLive, выпуск «Как встроить безопасность в процесс разработки ПО: практика, ошибки, решения»).
Только ленивый не писал и не обсуждал недавнюю новость, что оркестр из агентов Opus’а написал компилятор для C. Ссылка №1, №2, №3. Мне близка вот эта мысль:
... Но как по мне теперь только больше возрастает необходимость людей, которые "проклятую реальность" понимают, чтобы всякие странные штуки фиксить и/или объяснять, как фиксить, а для этого нужен опыт.И у меня есть к ней продолжение! Пока люди почему-то радуются, как легко создавать код, которые некому станет поддерживать, мы будем хранить знания и развивать сообщество экспертов. Вот наш вклад в это: Давайте создадим язык программирования. 10 бесплатных уроков, около 6 часов видео. В формате лайвкодинга Юрий Минаев (архитектор в компании PVS-Studio) показывает весь процесс разработки на C++ выдуманного языка программирования. Вы разберётесь, что такое язык и как формально описать его так, чтобы машина могла его понимать. Шаг за шагом вы реализуете лексер, вспомните основы грамматики и метод рекурсивного спуска, добавите в язык переменные и функции, научитесь вызывать их и корректно определять тип возвращаемого значения. Финальной частью станет написание собственного эвалюатора.
Разбираем изменения в OWASP Top 10 версии 2025 года на примерах и рассматриваем, как SAST может помочь избежать уязвимостей.
