Бестиарий программирования
Kanalga Telegram’da o‘tish
Наблюдения за жизнью ошибок в коде. Андрей Карпов. ГОСТ Р 71207-2024, ГОСТ Р 56939-2024, РБПО, Статический анализ кода Канал-дублёр в MAX: https://max.ru/join/3VWTp9apkQvTMSRQ__LGiTQ5NGVBj8p_tOpwlQO6vS8
Ko'proq ko'rsatish1 138
Obunachilar
Ma'lumot yo'q24 soatlar
-17 kun
+330 kun
Ma'lumotlar yuklanmoqda
O'xshash kanallar
Ma'lumot yo'q
Muammo bormi? Iltimos, sahifani yangilang yoki bizning qo'llab-quvvatlash boshqaruvchimizga murojaat qiling>.
Taglar buluti
Kirish va chiqish esdaliklari
---
---
---
---
---
---
Obunachilarni jalb qilish
Oktabr '26Okt '26
Oktabr '26
+7
0 kanalda
Sentabr '26
+15
1 kanalda
Get PRO
Avgust '26
+6
0 kanalda
Get PRO
Iyul '26
+43
0 kanalda
Get PRO
Iyun '26
+30
6 kanalda
Get PRO
May '26
+42
1 kanalda
Get PRO
Aprel '26
+34
2 kanalda
Get PRO
Mart '26
+24
1 kanalda
Get PRO
Fevral '26
+103
0 kanalda
Get PRO
Yanvar '26
+101
2 kanalda
Get PRO
Dekabr '25
+136
8 kanalda
Get PRO
Noyabr '25
+75
5 kanalda
Get PRO
Oktabr '25
+67
4 kanalda
Get PRO
Sentabr '25
+75
7 kanalda
Get PRO
Avgust '25
+67
5 kanalda
Get PRO
Iyul '25
+119
5 kanalda
Get PRO
Iyun '25
+143
8 kanalda
Get PRO
May '25
+107
2 kanalda
Get PRO
Aprel '25
+28
4 kanalda
Get PRO
Mart '250
0 kanalda
Get PRO
Fevral '250
0 kanalda
Get PRO
Yanvar '250
2 kanalda
Get PRO
Dekabr '240
0 kanalda
Get PRO
Noyabr '240
0 kanalda
Get PRO
Oktabr '240
2 kanalda
Get PRO
Sentabr '240
1 kanalda
Get PRO
Avgust '240
0 kanalda
Get PRO
Iyul '240
0 kanalda
Get PRO
Iyun '240
0 kanalda
Get PRO
May '240
0 kanalda
Get PRO
Aprel '240
0 kanalda
Get PRO
Mart '240
0 kanalda
Get PRO
Fevral '240
0 kanalda
Get PRO
Yanvar '240
0 kanalda
Get PRO
Dekabr '230
0 kanalda
Get PRO
Noyabr '230
0 kanalda
Get PRO
Oktabr '230
0 kanalda
Get PRO
Sentabr '23
+1
0 kanalda
Get PRO
Avgust '23
+1
0 kanalda
Get PRO
Iyul '23
+3
0 kanalda
Get PRO
Iyun '23
+2
0 kanalda
Get PRO
May '23
+3
0 kanalda
Get PRO
Aprel '23
+13
0 kanalda
Get PRO
Mart '23
+15
0 kanalda
Get PRO
Fevral '23
+6
0 kanalda
Get PRO
Yanvar '23
+4
0 kanalda
Get PRO
Dekabr '22
+290
0 kanalda
| Sana | Obunachilarni jalb qilish | Esdaliklar | Kanallar | |
| 29 Oktabr | 0 | |||
| 28 Oktabr | 0 | |||
| 27 Oktabr | 0 | |||
| 26 Oktabr | 0 | |||
| 25 Oktabr | 0 | |||
| 24 Oktabr | 0 | |||
| 23 Oktabr | 0 | |||
| 22 Oktabr | 0 | |||
| 21 Oktabr | +1 | |||
| 20 Oktabr | 0 | |||
| 19 Oktabr | 0 | |||
| 18 Oktabr | 0 | |||
| 17 Oktabr | +1 | |||
| 16 Oktabr | 0 | |||
| 15 Oktabr | 0 | |||
| 14 Oktabr | 0 | |||
| 13 Oktabr | 0 | |||
| 12 Oktabr | +1 | |||
| 11 Oktabr | +1 | |||
| 10 Oktabr | 0 | |||
| 09 Oktabr | +1 | |||
| 08 Oktabr | 0 | |||
| 07 Oktabr | 0 | |||
| 06 Oktabr | +1 | |||
| 05 Oktabr | 0 | |||
| 04 Oktabr | 0 | |||
| 03 Oktabr | 0 | |||
| 02 Oktabr | 0 | |||
| 01 Oktabr | +1 |
Kanal postlari
Обзор нововведений в 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 | Matn yo'q... | 456 |
| 10 | На днях выступал с докладом на форуме "Безопасность транспортных средств", организованном компанией "Экварта". Записи докладов пока нет, поэтому пока выкладываю свою презентацию: Анализатор PVS-Studio как средство достижения целей верификации ГОСТ Р ИСО 26262-6. | 445 |
| 11 | Matn yo'q... | 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 | Matn yo'q... | 765 |
| 18 | Всем привет. Я уже делал цикл из 5 вебинаров про ГОСТ Р 71207—2024 (Статический анализ программного обеспечения): Общее описание и актуальность, Терминология, Критические ошибки, Технологии анализа кода, Процессы.
С тех времён я переосмыслил некоторые моменты. Прошли испытания статических анализаторов. Вышел ГОСТ Р 56939—2024 и так далее.
Поэтому меня посетила мысль вновь сделать обзор стандарта, но немного в другом формате: брать разные фрагменты из него и комментировать/обсуждать. Образно говоря, читать и разбирать ГОСТ вслух с интонацией, комментариями и отсылками :)
Это можно сделать по-разному:
1. Просто сесть и сделать записи. Потом это можно будет слушать как мини аудио-книгу/подкаст.
2. Сделать стрим, где попутно будут задаваться вопросы по разбираемому месту.
Второй вариант подразумевает, что это будет интересно аудитории и люди соберутся, иначе теряется смысл и проще пойти по первому пути. Решил сделать предварительный опрос. | 800 |
| 19 | Matn yo'q... | 3 |
| 20 | Тяжело, когда ты программист и привык чётко воспринимать условия в повествовании :)
Из описания конференции.
Мы не делаем
* Без воды и теории из интернета
* Без курсов и инфоцыган
* Не продаём и не рекламируем со сцены | 442 |
