Бестиарий программирования
Відкрити в Telegram
Наблюдения за жизнью ошибок в коде. Андрей Карпов. ГОСТ Р 71207-2024, ГОСТ Р 56939-2024, РБПО, Статический анализ кода Канал-дублёр в MAX: https://max.ru/join/3VWTp9apkQvTMSRQ__LGiTQ5NGVBj8p_tOpwlQO6vS8
Показати більше1 138
Підписники
Немає даних24 години
-17 днів
+330 днів
Завантажуємо дані
Схожі канали
Немає даних
Виникли проблеми? Будь ласка, оновіть сторінку або зверніться до нашого support-менеджера.
Хмара тегів
Вхідні та вихідні згадування
---
---
---
---
---
---
Залучення підписників
жовтень '26жовт '26
жовтень '26
+7
в 0 каналах
вересень '26
+15
в 1 каналах
Get PRO
серпень '26
+6
в 0 каналах
Get PRO
липень '26
+43
в 0 каналах
Get PRO
червень '26
+30
в 6 каналах
Get PRO
травень '26
+42
в 1 каналах
Get PRO
квітень '26
+34
в 2 каналах
Get PRO
березень '26
+24
в 1 каналах
Get PRO
лютий '26
+103
в 0 каналах
Get PRO
січень '26
+101
в 2 каналах
Get PRO
грудень '25
+136
в 8 каналах
Get PRO
листопад '25
+75
в 5 каналах
Get PRO
жовтень '25
+67
в 4 каналах
Get PRO
вересень '25
+75
в 7 каналах
Get PRO
серпень '25
+67
в 5 каналах
Get PRO
липень '25
+119
в 5 каналах
Get PRO
червень '25
+143
в 8 каналах
Get PRO
травень '25
+107
в 2 каналах
Get PRO
квітень '25
+28
в 4 каналах
Get PRO
березень '250
в 0 каналах
Get PRO
лютий '250
в 0 каналах
Get PRO
січень '250
в 2 каналах
Get PRO
грудень '240
в 0 каналах
Get PRO
листопад '240
в 0 каналах
Get PRO
жовтень '240
в 2 каналах
Get PRO
вересень '240
в 1 каналах
Get PRO
серпень '240
в 0 каналах
Get PRO
липень '240
в 0 каналах
Get PRO
червень '240
в 0 каналах
Get PRO
травень '240
в 0 каналах
Get PRO
квітень '240
в 0 каналах
Get PRO
березень '240
в 0 каналах
Get PRO
лютий '240
в 0 каналах
Get PRO
січень '240
в 0 каналах
Get PRO
грудень '230
в 0 каналах
Get PRO
листопад '230
в 0 каналах
Get PRO
жовтень '230
в 0 каналах
Get PRO
вересень '23
+1
в 0 каналах
Get PRO
серпень '23
+1
в 0 каналах
Get PRO
липень '23
+3
в 0 каналах
Get PRO
червень '23
+2
в 0 каналах
Get PRO
травень '23
+3
в 0 каналах
Get PRO
квітень '23
+13
в 0 каналах
Get PRO
березень '23
+15
в 0 каналах
Get PRO
лютий '23
+6
в 0 каналах
Get PRO
січень '23
+4
в 0 каналах
Get PRO
грудень '22
+290
в 0 каналах
| Дата | Залучення підписників | Згадування | Канали | |
| 29 жовтня | 0 | |||
| 28 жовтня | 0 | |||
| 27 жовтня | 0 | |||
| 26 жовтня | 0 | |||
| 25 жовтня | 0 | |||
| 24 жовтня | 0 | |||
| 23 жовтня | 0 | |||
| 22 жовтня | 0 | |||
| 21 жовтня | +1 | |||
| 20 жовтня | 0 | |||
| 19 жовтня | 0 | |||
| 18 жовтня | 0 | |||
| 17 жовтня | +1 | |||
| 16 жовтня | 0 | |||
| 15 жовтня | 0 | |||
| 14 жовтня | 0 | |||
| 13 жовтня | 0 | |||
| 12 жовтня | +1 | |||
| 11 жовтня | +1 | |||
| 10 жовтня | 0 | |||
| 09 жовтня | +1 | |||
| 08 жовтня | 0 | |||
| 07 жовтня | 0 | |||
| 06 жовтня | +1 | |||
| 05 жовтня | 0 | |||
| 04 жовтня | 0 | |||
| 03 жовтня | 0 | |||
| 02 жовтня | 0 | |||
| 01 жовтня | +1 |
Дописи каналу
Обзор нововведений в C# 15. Union-типы, закрытые иерархии, именованные break и continue, индексаторы расширений, аргументы выражения коллекции, безопасность памяти.
| 2 | Вышел новый пресс-релиз про PVS-Studio — 8.01. В нём: расширение поддержки OWASP, поддержка новых версий Java и Go и многое другое. | 436 |
| 3 | Коллеги для удобства фильтрации сделали из статьи интерактивный раздел – Инструменты РБПО | 478 |
| 4 | Как мы научили JavaScript анализатор понимать поток управления | 513 |
| 5 | Напоминаю, что мы подготовили подборку материалов и вебинаров по теме процессов разработки безопасного ПО (РБПО) по ГОСТ Р 56939-2024.
ГОСТ56939.РФ | 600 |
| 6 | Запись вебинара: Go vet не поможет... Как сделать свой анализатор кода для Go? | 601 |
| 7 | В целях нетворкинга и просто так приглашаю коннектиться в TenChat — что-то типа LinkedIn. Ссылка на мой профиль: https://m.tenchat.ru/u/uIMxo8j8 | 491 |
| 8 | Сегодня коллега демонстрирует, как визуально проявляют себя баги в Java коде: Нашёл ошибки в моде Create и проверил их в игре
> В этой статье мы разберём ошибки в одном из самых популярных модов для Minecraft — Create. Посмотрим, как они проявляются прямо в игре, и отправим пулл-реквесты с исправлениями. | 597 |
| 9 | Немає тексту... | 456 |
| 10 | На днях выступал с докладом на форуме "Безопасность транспортных средств", организованном компанией "Экварта". Записи докладов пока нет, поэтому пока выкладываю свою презентацию: Анализатор PVS-Studio как средство достижения целей верификации ГОСТ Р ИСО 26262-6. | 445 |
| 11 | Немає тексту... | 412 |
| 12 | Кажется, я ментально синхронизировался с миром РБПО. Сегодня на РБПО.рф опубликовали карту инструментов РБПО. Дело в том, что несколько предыдущих дней мы занимались приблизительно тем же самым.
Так что теперь две подборки :)
Наш вариант — Список инструментов для РБПО. | 415 |
| 13 | Кажется, я ментально синхронизировался с миром РБПО. Сегодня на РБПО.рф опубликовали карту инструментов РБПО. Дело в том, что несколько предыдущих дней мы занимались приблизительно тем же самым. Так что теперь две подборки :)
Наш вариант — Список инструментов для РБПО. | 1 |
| 14 | "Лаборатория Касперского" разрабатывает микроядерную операционную систему KasperskyOS в соответствии с принципом Secure by Design (конструктивная безопасность). Этот принцип предполагает, что защищённость системы закладывается на уровне её архитектуры. К качеству и надёжности операционной системы предъявляются высокие требования, а доверенные компоненты проходят тщательную проверку, одним из этапов которой является статический анализ кода.
"Лаборатория Касперского" использует PVS-Studio в разработке операционной системы KasperskyOS с 2016 года. За это время некоторые обращения разработчиков в нашу поддержку превратились в новые функции анализатора, доступные теперь всем пользователям PVS-Studio. Разбираем пять таких случаев и показываем, как обратная связь корпоративного клиента влияет на развитие продукта. | 558 |
| 15 | Пример, как идеология педантичности стандарта MISRA C защищает от ошибок
В C литерал 0 можно присваивать как численным типам, так и указателю (вместо NULL). Правило MISRA C 2012/2023 11.9, которое говорит, что нужно использовать именно NULL, может казаться избыточным. Например, здесь:
typedef struct FT_Outline_
{
short n_contours; /* number of contours in glyph */
short n_points; /* number of points in the glyph */
FT_Vector* points; /* the outline's points */
char* tags; /* the points flags */
short* contours; /* the contour end points */
int flags; /* outline masks */
} FT_Outline;
....
static const FT_Outline null_outline = { 0, 0, 0, 0, 0, 0 };
V2648 Use NULL macro instead of literal zero for pointers.
Если заменить некоторые 0 на NULL никому лучше не станет.
static const FT_Outline null_outline = { 0, 0, NULL, NULL, NULL, 0 };
Правило, кажется, просто украшательством стиля написания кода. Лишнее ограничение при написании кода... Какой практический прок? Давайте посмотрим, как такое предупреждение помогает выявить реальную ошибку.
typedef char FAR * FAR * png_charpp;
....
png_size_t
png_check_keyword(...., png_charpp new_key)
{
....
if (key_len > 79)
{
png_warning(....);
new_key[79] = '\0'; // <= V2648
key_len = 79;
}
....
}
Обратите внимание на тип переменной new_key – это указатель на указатель. Из-за опечатки, терминальный ноль обнуляет указатель, а не записывается в строку. Правильный вариант кода:
(*new_key)[79] = '\0';
Благодаря осмотрительной педантичности найдена реальная ошибка.
На самом деле, PVS-Studio и раньше эту ошибку находил с помощью другой диагностики – V527 It is odd that the '\0' value is assigned to 'char' type pointer. Но здесь именно хотелось продемонстрировать, как работают и помогают MISRA правила. Вообще ситуация, что один и тот-же баг выявляется разными детекторами, вполне частая ситуация и удивляться этому не стоит.
Почему я про MISRA вспомнил?
Во-первых, мои коллеги сейчас занимаются подготовкой квалификационного пакета PVS-Studio согласно ГОСТ Р МЭК 61508 и ГОСТ Р ИСО 26262 по поддержке MISRA C:2012 и MISRA C:2023.
Во-вторых, 23 сентября я буду с докладом "Анализатор PVS-Studio как средство достижения целей верификации ГОСТ Р ИСО 26262-6" на форуме "Безопасность транспортных средств". Приглашаю посетить мероприятие и мой доклад. | 416 |
| 16 | Сегодня у меня для любителей C++: Каждая идиома когда-то была проблемой.
Красивый и надёжный код почти никогда не рождается с первого раза. Сначала появляются ошибки, а уже потом – идиомы, которые помогают их избегать. На вебинаре рассмотрели реальные фрагменты кода из открытых проектов на языке C++, нашли в них проблемные места с помощью статического анализа, и разобрали более 10 идиом и паттернов, которые позволят защитить ваш код.
А для Java-разработчиков: 96-й подкаст Javaswag: Gradle, плагины для Minecraft и статический анализ в PVS-Studio.
Обсудили, как войти в Java через моды и серверы Minecraft, почему мир кубов живет на Netty и Gradle, как грамотно организовать мультимодульные проекты с помощью build-logic и type-safe accessor'ов, а также заглянули под капот разработки статических анализаторов кода (от поиска багов и Taint-анализа до соответствия ГОСТам). | 483 |
| 17 | Немає тексту... | 765 |
| 18 | Всем привет. Я уже делал цикл из 5 вебинаров про ГОСТ Р 71207—2024 (Статический анализ программного обеспечения): Общее описание и актуальность, Терминология, Критические ошибки, Технологии анализа кода, Процессы.
С тех времён я переосмыслил некоторые моменты. Прошли испытания статических анализаторов. Вышел ГОСТ Р 56939—2024 и так далее.
Поэтому меня посетила мысль вновь сделать обзор стандарта, но немного в другом формате: брать разные фрагменты из него и комментировать/обсуждать. Образно говоря, читать и разбирать ГОСТ вслух с интонацией, комментариями и отсылками :)
Это можно сделать по-разному:
1. Просто сесть и сделать записи. Потом это можно будет слушать как мини аудио-книгу/подкаст.
2. Сделать стрим, где попутно будут задаваться вопросы по разбираемому месту.
Второй вариант подразумевает, что это будет интересно аудитории и люди соберутся, иначе теряется смысл и проще пойти по первому пути. Решил сделать предварительный опрос. | 800 |
| 19 | Немає тексту... | 3 |
| 20 | Тяжело, когда ты программист и привык чётко воспринимать условия в повествовании :)
Из описания конференции.
Мы не делаем
* Без воды и теории из интернета
* Без курсов и инфоцыган
* Не продаём и не рекламируем со сцены | 442 |
