en
Feedback
Бестиарий программирования

Бестиарий программирования

Open in Telegram

Наблюдения за жизнью ошибок в коде. Андрей Карпов. ГОСТ Р 71207-2024, ГОСТ Р 56939-2024, РБПО, Статический анализ кода Канал-дублёр в MAX: https://max.ru/join/3VWTp9apkQvTMSRQ__LGiTQ5NGVBj8p_tOpwlQO6vS8

Show more
1 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.

Мне создать Бестиарий программирования в MAX?
Anonymous voting

Наша команда работает еще над анализатором для JavaScript и TypeScript! 🔥 Приглашаем всех заинтересованных присоединиться к
Наша команда работает еще над анализатором для JavaScript и TypeScript! 🔥 Приглашаем всех заинтересованных присоединиться к тестированию. В этой заметке все подробности 🔗 #js #ts #статья #тестирование

Может зато опечаток нет? Есть. PVS-Studio: V560 A part of conditional expression is always false: btn_char == '+'. window.c 1
Может зато опечаток нет? Есть. 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';

Команда PVS-Studio усердно работала над созданием статического анализатора кода для Go, и наконец мы рады объявить о начале о
Команда PVS-Studio усердно работала над созданием статического анализатора кода для Go, и наконец мы рады объявить о начале открытого тестирования! Приглашаем всех заинтересованных присоединиться. В этой заметке рассказываем, как это сделать 🔗 #go #тестирование #статья

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

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

Финальный вебинар цикла! Тема: "Сертификация процессов РБПО: требования ФСТЭК России, новые стандарты и практика" На вебинаре
Финальный вебинар цикла! Тема: "Сертификация процессов РБПО: требования ФСТЭК России, новые стандарты и практика" На вебинаре разберем практику сертификации, новые национальные стандарты и методику подготовки, опыт компаний, а также подводные камни аудита, ресурсы и преимущества внедрения РБПО. Приглашенные эксперты: - Дмитрий Шмойлов, Head of Software Security, Kaspersky. - Щербаков Алексей, руководитель центра кибербезопасности Платформы СберТех - Виталий Вареница, руководитель сертификационной лаборатории ⏰Сегодня в 16:00 Регистрация по ссылке 🔗 #вебинар #рбпо

Запись вебинара "Инструменты для разработчиков игр и не только". Вместе с экспертами из Forgotten Empires и Playrix мы разобр
+3
Запись вебинара "Инструменты для разработчиков игр и не только". Вместе с экспертами из Forgotten Empires и Playrix мы разобрались, какие инструменты входят в арсенал GameDev-команд, зачем они нужны и почему профилировщики играют ключевую роль в разработке. А бонусом — показали, как превратить ваш код в настоящий город.

Мы добавили в документацию раздел о использовании PVS-Studio в SourceCraft SourceCraft — платформа, с помощью которой можно р
Мы добавили в документацию раздел о использовании PVS-Studio в SourceCraft SourceCraft — платформа, с помощью которой можно разрабатывать исходный код, управлять версиями, тестировать, собирать, развёртывать и сопровождать программные продукты. Сервис представляет собой систему управления репозиториями кода для Git с отслеживанием ошибок и пайплайном CI/CD. Читатели Хабра думаю сразу вспомнят "Объяснить с SourceCraft" в блоках кода. В документации объясняется как запустить анализатор PVS-Studio и как работать с SARIF-отчётами. Соответствующий раздел: Использование PVS-Studio в SourceCraft

Вышел новый релиз PVS-Studio — 7.41. В нём улучшения для Unreal Engine, поддержка MISRA C 2023, обновление плагина для Intell
Вышел новый релиз PVS-Studio — 7.41. В нём улучшения для Unreal Engine, поддержка MISRA C 2023, обновление плагина для IntelliJ IDEA и другие полезные изменения. На мой взгляд особого внимания заслуживает новый механизм "Удаление неактуальных маркеров подавления".
По мере развития анализатора или изменения анализируемого кода ложное предупреждение может перестать генерироваться, и маркеры подавления, содержащиеся в строках исходного кода для этого предупреждения, перестанут быть актуальными. Накопление неактуальных маркеров подавления засоряет код и может привести к тому, что появившееся в том же месте новое предупреждение останется незамеченным. Для очистки кодовой базы от неактуальных маркеров в пакете поставки анализатора PVS-Studio предусмотрена специальная утилита — pvs-fp-cleaner.

Зачем делать игры, которые увидят немногие? | Разбаговка #6 У нас в гостях Слава Грис, разработчик игр, блогер. В выпуске: - Точка входа: История о том, как Слава оказался в геймдеве (спойлер: опыт не всегда стоит на первом месте). - Дух андеграунда: Что движет автором, когда он создает игры не «для всех». - Бизнес на коленке: Как инди-разработчику не затеряться в океане ежедневных релизов и найти своего игрока. - Свобода vs Мейнстрим: Почему быть «маленьким» разработчиком — это суперсила, и зачем делать игры, которые поймут немногие.

Запись бонусный вебинара цикла "Вокруг РБПО" – Системы с конструктивной информационной безопасностью. В конце 2025 года вступ
Запись бонусный вебинара цикла "Вокруг РБПО" – Системы с конструктивной информационной безопасностью. В конце 2025 года вступил в силу национальный стандарт «ГОСТ Р 72118 Защита информации. Системы с конструктивной информационной безопасностью. Методология разработки». С помощью приглашенного эксперта — Екатерины Рудиной (аналитик департамента перспективных технологий «Лаборатории Касперского») — мы разобрались, в чем сходство и различие таких систем с безопасным ПО, как соотносятся создание систем с КИБ и разработка безопасного ПО, чем новый стандарт полезен в работе специалистов по ИБ различного профиля. Смотри также сайт, о котором рассказала Екатерина – securitybydesign.ru.

Запись вебинара: Статический анализ кода в методическом документе ЦБ РФ "Профиль защиты". Описание. Методический документ "Пр
Запись вебинара: Статический анализ кода в методическом документе ЦБ РФ "Профиль защиты". Описание. Методический документ "Профиль защиты (ПЗ) прикладного ПО автоматизированных систем и приложений кредитных организаций и некредитных финансовых организаций", опубликованный в декабре 2025 года, уточнил и расширил многие меры, направленные на разработку безопасных программных продуктов. Например, перечислены требования, предъявляемые к инструментальным средствам статического анализа кода. В ходе вебинара рассмотрели эти новые требования, а также причины, по которым полезно изучить ГОСТ Р 56939—2024 и ГОСТ Р 71207—2024 при реализации требований безопасности, изложенных в ПЗ. Примечание. По окончании вебинара был задан вопрос о сертификации средств статического анализа. В качестве ответа уместно привести цитату из статьи "Итоги этапа «Домашнее задание» испытаний статических анализаторов под патронажем ФСТЭК России":
Важно отметить, что в настоящий момент ФСТЭК России не предъявляет каких-либо специальных требований к инструментам статического анализа, на соответствие которым возможно проводить сертификационные испытания инструментов. Как следствие, любые требования заказчиком наличия сертификата ФСТЭК России на инструмент статического анализа являются его частной инициативой (подробнее — в эфире канала AMLive, выпуск «Как встроить безопасность в процесс разработки ПО: практика, ошибки, решения»).

Только ленивый не писал и не обсуждал недавнюю новость, что оркестр из агентов Opus’а написал компилятор для C. Ссылка №1, №2
Только ленивый не писал и не обсуждал недавнюю новость, что оркестр из агентов Opus’а написал компилятор для C. Ссылка №1, №2, №3. Мне близка вот эта мысль:
... Но как по мне теперь только больше возрастает необходимость людей, которые "проклятую реальность" понимают, чтобы всякие странные штуки фиксить и/или объяснять, как фиксить, а для этого нужен опыт.
И у меня есть к ней продолжение! Пока люди почему-то радуются, как легко создавать код, которые некому станет поддерживать, мы будем хранить знания и развивать сообщество экспертов. Вот наш вклад в это: Давайте создадим язык программирования. 10 бесплатных уроков, около 6 часов видео. В формате лайвкодинга Юрий Минаев (архитектор в компании PVS-Studio) показывает весь процесс разработки на C++ выдуманного языка программирования. Вы разберётесь, что такое язык и как формально описать его так, чтобы машина могла его понимать. Шаг за шагом вы реализуете лексер, вспомните основы грамматики и метод рекурсивного спуска, добавите в язык переменные и функции, научитесь вызывать их и корректно определять тип возвращаемого значения. Финальной частью станет написание собственного эвалюатора.

Разбираем изменения в OWASP Top 10 версии 2025 года на примерах и рассматриваем, как SAST может помочь избежать уязвимостей.