Правила ISO/IEC TS 17961

Описание и список стандартных правил безопасности ISO/IEC TS 17961, поддерживаемых в Polyspace®

ISO/IEC TS 17961 является набором правил разработки защищенного кода. Правила разработаны таким образом, что они могут быть применены с помощью инструментов статического анализа без чрезмерных ложных срабатываний.

Polyspace может проверить ваш код на соответствие стандарту безопасности ISO/IEC TS 17961. Используйте Check ISO/IEC TS 17961 (-iso-17961) опция анализа для активации подмножеств правил.

Результаты Polyspace

расширить все

ISO/IEC TS 17961 [accfree]Доступ к свободной памяти
ISO/IEC TS 17961 [accsig]Доступ к общим объектам в обработчиках сигналов
ISO/IEC TS 17961 [addrescape]Выход из адреса автоматического объекта
ISO/IEC TS 17961 [alignconv]Преобразование значений указателей в более строго выровненные типы указателей
ISO/IEC TS 17961 [argcomp]Вызов функций с неправильными аргументами
ISO/IEC TS 17961 [asyncsig]Функции вызова в стандартной библиотеке C, отличные от прерывания, _Exit и сигнала из обработчика сигнала
ISO/IEC TS 17961 [boolasgn]Нет назначения в условных выражениях
ISO/IEC TS 17961 [chreof]Использование значений символов, которые неотличимы от EOF
ISO/IEC TS 17961 [chrsgnext]Передача аргументов в функции обработки символов, которые не представимы в качестве неподписанных char
ISO/IEC TS 17961 [dblfree]Освобождение памяти несколько раз
ISO/IEC TS 17961 [diverr]Целочисленные ошибки деления
ISO/IEC TS 17961 [fileclose]Не удается закрыть файлы или освободить динамическую память, когда они больше не нужны
ISO/IEC TS 17961 [filecpy]Копирование объекта ФАЙЛ
ISO/IEC TS 17961 [funcdecl]Объявление той же функции или объекта несовместимыми способами
ISO/IEC TS 17961 [insufmem]Выделение недостаточной памяти
ISO/IEC TS 17961 [intoflow]Переполнение целых чисел со знаком
ISO/IEC TS 17961 [intptrconv]Преобразование указателя в целое число или целого числа в указатель
ISO/IEC TS 17961 [inverrno]Неправильная настройка и использование errno
ISO/IEC TS 17961 [invfmtstr]Использование недопустимых строк формата
ISO/IEC TS 17961 [invptr]Формирование или использование выключенных указателей или индексов массива
ISO/IEC TS 17961 [ioileave]Перемежение входов и выходов потока без вызова заподлицо или позиционирования
ISO/IEC TS 17961 [liberr]Не удалось обнаружить и обработать стандартные ошибки библиотеки
ISO/IEC TS 17961 [libmod]Изменение строки, возвращаемой getenv, localeconv, setlocale и strerror
ISO/IEC TS 17961 [libptr]Формирование недопустимых указателей функцией библиотеки
ISO/IEC TS 17961 [libuse]Использование объекта, перезаписанного getenv, localeconv, setlocale и strerror
ISO/IEC TS 17961 [nonnullcs]Передача не оконечной последовательности символа в функцию библиотеки
ISO/IEC TS 17961 [nullref]Удаление указателя за пределами домена
ISO/IEC TS 17961 [padcomp]Сравнение данных заполнения
ISO/IEC TS 17961 [ptrcomp]Доступ объекта через указатель к несовместимому типу
ISO/IEC TS 17961 [ptrobj]Вычитание или сравнение двух указателей, которые не относятся к одному массиву
ISO/IEC TS 17961 [resident]Использование идентификаторов, зарезервированных для реализации
ISO/IEC TS 17961 [restrict]Передача указателей в тот же объект, что и аргументы, другим параметрам с ограничениями
ISO/IEC TS 17961 [sigcall]Вызывающий сигнал от обработчиков прерывания
ISO/IEC TS 17961 [signconv]Преобразование подписанных символов в более широкие целые типы перед проверкой на EOF
ISO/IEC TS 17961 [sizeofptr]Взятие размера указателя для определения размера остроконечного типа
ISO/IEC TS 17961 [strmod]Изменение строковых литералов
ISO/IEC TS 17961 [swtchdflt]Использование подразумеваемого значения по умолчанию в операторе switch
ISO/IEC TS 17961 [syscall]Вызывающая система
ISO/IEC TS 17961 [taintformatio]Использование испорченного значения для записи в объект с помощью форматированной входной или выходной функции
ISO/IEC TS 17961 [taintnoproto]Использование испорченного значения в качестве аргумента для незащищенного указателя на функцию
ISO/IEC TS 17961 [taintsink]Испорченные, потенциально изувеченные или внедоменные целочисленные значения используются в ограниченном приемнике
ISO/IEC TS 17961 [taintstrcpy]Испорченные строки передаются в функцию копирования строк
ISO/IEC TS 17961 [uninitref]Ссылка на неинициализированную память
ISO/IEC TS 17961 [usrfmt]Включение испорченного или внедоменного входа в строку формата
ISO/IEC TS 17961 [xfilepos]Использование значения для fsetpos, отличного от значения, возвращенного fgetpos
ISO/IEC TS 17961 [xfree]Перераспределение или освобождение памяти, которая не была динамически выделена

Темы

Проверяйте на нарушения стандарта кодирования

Проверка на нарушения AUTOSAR C++ 14, CERT® C, CERT C++ MISRA C®, MISRA® C++, JSF AV C++ или ISO-17961 стандарт с Bug Finder или Code Prover.