Программные дефекты

Дефекты для программирования ошибок кодирования, операторов присвоения и равенства, несоответствия типов, wraparound, строковых массивов

Эти дефекты являются ошибками, относящимися к синтаксису программирования. Эти дефекты включают:

  • Операторы присвоения и равенства

  • Несоответствия между квалификаторами или объявлениями переменных

  • Плохо отформатированные строки

Результаты Polyspace

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

Abnormal termination of exit handlerФункция Exit handler прерывает нормальное выполнение программы
Accessing object with temporary lifetimeОперации чтения или записи объекта являются неопределенным поведением
Alternating input and output from a stream without flush or positioning callНеопределенное поведение для операций входа или выхода потока
AssertionНе удалось выполнить оператор утверждения
Bad file access mode or statusАргумент функции в режиме доступа в fopen или open недопустимая группа
Call through non-prototyped function pointerУказатель на функцию, объявленный без его типа или количества параметров, вызывает неожиданное поведение
Call to memset with unintended valuememset или wmemset используется с возможно неправильными аргументами
Character value absorbed into EOFПреобразование типа данных делает допустимое значение символа таким же, как и в конце файла (EOF)
Copy of overlapping memoryИсходный и целевой аргументы функции копирования имеют перекрывающуюся память
Declaration mismatchНесоответствие между объявлениями функций или переменных
Environment pointer invalidated by previous operationВызов setenv или putenv функция семейства изменяет окружение, на которую указывает указатель
Errno not reseterrno не сбрасываться перед вызовом функции, которая устанавливает errno
Floating point comparison with equality operatorsНеточное сравнение переменных с плавающей точкой
Format string specifiers and arguments mismatchФормат спецификаторов в printf-подобные функции не совпадают с соответствующими аргументами
Function called from signal handler not asynchronous-safeВызов прерванной функции вызывает неопределенное поведение программы
Function called from signal handler not asynchronous-safe (strict)Вызов прерванной функции вызывает неопределенное поведение программы
Improper array initializationНеправильная инициализация массива при использовании инициализаторов
Incorrect data type passed to va_argТип данных аргумента вариативной функции не совпадает с типом в va_arg звонить
Incorrect pointer scalingНеявное масштабирование в арифметике указателя может быть проигнорировано
Incorrect type data passed to va_startТип данных второго аргумента для va_start макрос приводит к неопределенному поведению
Incorrect use of offsetof in C++Неправильные аргументы в offsetof макрос вызывает неопределенное поведение
Incorrect use of va_startva_start вызывается в не вариадной функции или вызывается со вторым аргументом, который не является крайним правым параметром вариадной функции
Incorrect value forwardingПеренаправленный объект может быть неожиданно изменен
Inline constraint not respectedИзменяемая статическая переменная изменена в нестатической встроенной функции
Invalid assumptions about memory organizationАдрес вычисляется путем добавления или вычитания из адреса переменной
Invalid file positionfsetpos() вызывается с аргументом положения файла, не полученным из fgetpos()
Invalid use of = (assignment) operatorНазначение в условном операторе
Invalid use of == (equality) operatorОперация равенства в операторе о присвоении
Invalid use of standard library routineНеправильные аргументы в стандартной функции библиотеки
Invalid va_list argumentСписок аргументов переменной, используемый после признания недействительным с va_end или не инициализирован с va_start или va_copy
Memory comparison of padding datamemcmp сравнивает данные, хранящиеся в заполнении структуры
Memory comparison of float-point valuesПредставление объекта значений с плавающей точкой может быть различным (тем же) для значений с равной (не равной) плавающей точкой
Memory comparison of stringsmemcmp сравнивает данные, хранящиеся в строках после null terminator
Missing byte reordering when transferring dataРазная эндианность хоста и сети
Missing null in string arrayСтрока не заканчивается символом null
Misuse of a FILE objectИспользование копии объекта ФАЙЛ
Misuse of errnoerrno неверно проверено на наличие ошибки условий
Misuse of narrow or wide character stringУзкая (широкая) символьная строка перешла к широкой (узкой) строковой функции
Misuse of errno in a signal handlerЧитаешь errno после вызова errno-настройка функции в обработчике сигналов
Misuse of structure with flexible array memberВыделение памяти игнорирует гибкий представитель массива
Misuse of sign-extended character valueПреобразование типа данных с расширением знака вызывает неожиданное поведение
Misuse of return value from nonreentrant standard functionУказатель на статический буфер от предыдущего вызова используется, несмотря на последующий вызов, который изменяет буфер
Modification of internal buffer returned from nonreentrant standard functionФункция пытается изменить внутренний буфер, возвращенный из не входящей стандартной функции
Noncompliance with AUTOSAR specificationФункция RTE API используется с аргументами, которые нарушают спецификацию стандарта AUTOSAR
Overlapping assignmentПерекрытие памяти между левой и правой сторонами назначения
Possible misuse of sizeofИспользование sizeof оператор может вызвать непреднамеренные результаты
Possibly unintended evaluation of expression because of operator precedence rulesПравила приоритета операторов вызывают неожиданный порядок оценки в арифметическом выражении
Predefined macro used as objectВы используете стандартные библиотечные макросы, такие как assert и errno как объекты
Preprocessor directive in macro argumentВы используете директиву препроцессора в аргументе к функциональному макросу
Qualifier removed in conversionКвалификатор переменной теряется во время преобразования
Return from computational exception signal handlerНеопределенное поведение, когда обработчик сигнала нормально возвращается из ошибки программы
Side effect in arguments to unsafe macroМакрос содержит аргументы, которые можно оценить несколько раз или не оценить
Side effect of expression ignoredsizeof, _Alignof, или _Generic действует на выражение с побочным эффектом
Signal call from within signal handlerНеперсистентный обработчик сигнала, вызывающий signal() в системе Windows вызывает условие гонки
Shared data access within signal handlerДоступ или изменение разделяемых данных вызывают несогласованное состояние
Standard function call with incorrect argumentsАргумент стандартной функции не соответствует требованиям для использования в функции
Stream argument with possibly unintended side effectsПобочные эффекты аргумента потока происходят более одного раза
Too many va_arg calls for current argument listКоличество вызовов в va_arg превышает количество аргументов, переданных в вариадную функцию
Typedef mismatchНесоответствие между typedef операторы
Universal character name from token concatenationВы создаете универсальное имя символа, соединяя лексемы с ## оператор
Unnamed namespace in header fileЗаголовочный файл содержит неназванное пространство имен, ведущее к нескольким определениям
Unsafe conversion between pointer and integerНесогласованные или недопустимые результаты преобразований между указателем мыши и целых типов
Unsafe conversion from string to numerical valueПреобразование строки в число без проверок валидации
Use of indeterminate stringИспользование буфера из функции семейства fgets
Use of memset with size argument zeroАргумент размера функции в memset семейство равно нулю
Variable length array with nonpositive sizeРазмер массива переменной длины равен нулю или отрицательному
Writing to const qualified objectОбъект, объявленный как const квалификатор изменен
Wrong type used in sizeofsizeof аргумент не совпадает с указанным типом

Темы

Группы дефектов Bug Finder

Проверки дефектов Bug Finder классифицируются в такие группы, как поток данных, параллелизм, численный и так далее.