Отображение между CWE-658 или 659 и результатами Polyspace

CWE-658: Слабые стороны программного обеспечения, написанного на C

CWE™-658 является подмножеством идентификаторов CWE, найденных в программах на C, которые не являются общими для всех языков. См. CWE-658.

В следующей таблице перечислены идентификаторы CWE (версия 3.3) из этого подмножества, которые адресованы Polyspace® Bug Finder™ с соответствующими ему дефектными шашками.

ИДЕНТИФИКАТОР CWEОписание идентификатора CWEPolyspace Bug Finder Defect Checker
119Неподходящее ограничение операций в границах буфера памяти

Array access out of bounds

Pointer access out of bounds

120Буферная копия без проверки размера входа ('Classic buffer overflow')

Invalid use of standard library memory routine

Invalid use of standard library string routine

Tainted NULL or non-null-terminated string

121Переполнение буфера на основе стека

Array access with tainted index

Destination buffer overflow in string manipulation

122Переполнение буфера на основе кучи

Pointer dereference with tainted offset

124Подземная запись буфера ('Buffer underflow')

Array access with tainted index

Buffer overflow from incorrect string format specifier

Destination buffer underflow in string manipulation

Pointer dereference with tainted offset

125Считайте вне границ

Array access with tainted index

Buffer overflow from incorrect string format specifier

Destination buffer overflow in string manipulation

126Перечитать буфер

Buffer overflow from incorrect string format specifier

127Перечитать буфер

Buffer overflow from incorrect string format specifier

128Ошибка переноса

Integer constant overflow

Integer conversion overflow

Integer overflow

Memory allocation with tainted size

Tainted sign change conversion

Tainted size of variable length array

Unsigned integer constant overflow

Unsigned integer conversion overflow

Unsigned integer overflow

129Неправильная валидация индекса массива

Array access with tainted index

Pointer dereference with tainted offset

130Неправильная обработка несогласованности параметра длины

Mismatch between data length and size

131Неправильное вычисление buffer size

Array access out of bounds

Memory allocation with tainted size

Pointer access out of bounds

Tainted sign change conversion

Tainted size of variable length array

Unsigned integer conversion overflow

Unsigned integer overflow

134Строка неконтролируемого формата

Tainted string format

135Неправильное вычисление длины многобайтовой строки

Destination buffer overflow in string manipulation

Misuse of narrow or wide character string

Unreliable cast of pointer

170Неправильное завершение по умолчанию

Missing null in string array

Misuse of readlink()

Tainted NULL or non-null-terminated string

188Опора на размещение данных/памяти

Invalid assumptions about memory organization

Memory comparison of padding data

Memory comparison of strings

Missing byte reordering when transferring data

Pointer access out of bounds

191Целочисленное нижнее течение (Wrap или wraparound)

Integer constant overflow

Integer conversion overflow

Integer overflow

Unsigned integer constant overflow

Unsigned integer conversion overflow

Unsigned integer overflow

192Целочисленная ошибка принуждения

Integer conversion overflow

Integer overflow

Sign change integer conversion overflow

Tainted sign change conversion

Unsigned integer conversion overflow

Unsigned integer overflow

194Неожиданное расширение знака

Sign change integer conversion overflow

Tainted sign change conversion

195Ошибка преобразования подписи в неподписанную

Sign change integer conversion overflow

Tainted sign change conversion

196Ошибка преобразования без подписи в подпись

Sign change integer conversion overflow

197Числовая ошибка усечения

Float conversion overflow

Integer conversion overflow

Unsigned integer conversion overflow

242Использование неотъемлемо опасной функции

Use of dangerous standard function

243Создание тюрьмы chroot без изменения рабочей директории

File manipulation after chroot without chdir

244Неправильная очистка памяти кучки перед релизом

Sensitive heap memory not cleared before release

362Параллельное выполнение с использованием общего ресурса с неподходящей синхронизацией ('Race Condition')

File descriptor exposure to child process

Opening previously opened resource

364Условие гонки обработчика сигналов

Function called from signal handler not asynchronous-safe (strict)

Function called from signal handler not asynchronous-safe

Shared data access within signal handler

366Условие гонки в потоке

Data race including atomic operations

Data race through standard library function call

Data race

375Возврат изменяемого объекта ненадежному вызывающему абоненту

Return of non const handle to encapsulated data member

401Неподходящий релиз памяти перед удалением последней ссылки

Memory leak

Thread-specific memory leak

415Double free

Deallocation of previously deallocated pointer

Missing reset of a freed pointer

416Использование после бесплатного

Missing reset of a freed pointer

Use of previously freed pointer

457Использование неинициализированной переменной

Member not initialized in constructor

Non-initialized pointer

Non-initialized variable

466Возврат значения указателя за пределы ожидаемой области значений

Array access out of bounds

Pointer access out of bounds

Unsafe conversion between pointer and integer

467Использование sizeof () для типа указателя

Possible misuse of sizeof

Wrong type used in sizeof

468Неправильное масштабирование указателя

Incorrect pointer scaling

469Использование вычитания указателя для определения размера

Subtraction or comparison between pointers to different arrays

474Использование функции с несогласованными реализациями

Signal call from within signal handler

Use of obsolete standard function

476Удаление указателя NULL

Null pointer

Tainted NULL or non-null-terminated string

478Отсутствует случай по умолчанию в операторе switch

Missing case for switch condition

479Использование обработчиком сигналов функции, не входящей в систему

Function called from signal handler not asynchronous-safe (strict)

Function called from signal handler not asynchronous-safe

480Использование неправильного оператора

Invalid use of = (assignment) operator

Invalid use of == (equality) operator

481Назначение вместо сравнения

Invalid use of = (assignment) operator

482Сравнение вместо назначения

Invalid use of == (equality) operator

483Неправильное разделение блоков

Incorrectly indented statement

Semicolon on same line as if, for or while statement

484Опущенный оператор пропуск в switch

Missing break of switch case

558Использование гетлогина () в многопоточном приложении

Unsafe standard function

560Использование umask () с аргументом в стиле chmod

Umask used with chmod-style arguments

562Возврат адреса переменной стека

Pointer or reference to stack variable leaving scope

Use of automatic variable as putenv-family function argument

587Назначение фиксированного адреса указателю

Function pointer assigned with absolute address

Unsafe conversion between pointer and integer

676Использование потенциально опасной функции

Unsafe conversion from string to numerical value

Use of dangerous standard function

685Вызов функции с неправильным количеством аргументов

Declaration mismatch

Format string specifiers and arguments mismatch

Standard function call with incorrect arguments

Too many va_arg calls for current argument list

690Снятое значение возврата к нулевому разыменованию указателя

Invalid use of standard library memory routine

Invalid use of standard library routine

Invalid use of standard library string routine

Null pointer

Returned value of a sensitive function not checked

Standard function call with incorrect arguments

Tainted NULL or non-null-terminated string

Unprotected dynamic memory allocation

704Неправильное преобразование или приведение типов

Character value absorbed into EOF

Misuse of sign-extended character value

Precision loss in integer to float conversion

Qualifier removed in conversion

Unreliable cast of pointer

Wrong allocated object size for cast

762Несовпадающие стандартные программы управления памятью

Invalid free of pointer

Mismatched alloc/dealloc functions on Windows

783Логическая ошибка приоритета оператора

Possibly unintended evaluation of expression because of operator precedence rules

785Использование функции манипуляции путями без буфера максимального размера

Use of path manipulation function without maximum sized buffer checking

787Внеплановая запись

Destination buffer overflow in string manipulation

Destination buffer underflow in string manipulation

789Неконтролируемое выделение памяти

Memory allocation with tainted size

Tainted size of variable length array

Unprotected dynamic memory allocation

805Доступ к буферу с неправильным значением длины

Hard-coded object size used to manipulate memory

843Доступ ресурса с использованием несовместимого типа ('Type confusion')

Unreliable cast of pointer

910Использование дескриптора файла с истекшим сроком действия

Closing a previously closed resource

Standard function call with incorrect arguments

Use of previously closed resource

CWE-659: Слабые стороны программного обеспечения, написанного на C++

CWE-659 является подмножеством идентификаторов CWE, найденных в программах C++, которые не являются общими для всех языков. См. CWE-659.

В следующей таблице перечислены идентификаторы CWE (версия 3.3) из этого подмножества, которые адресованы Polyspace Bug Finder, с соответствующими дефектными шашками.

ИДЕНТИФИКАТОР CWEОписание идентификатора CWEPolyspace Bug Finder Defect Checker
119Неподходящее ограничение операций в границах буфера памяти

Array access out of bounds

Pointer access out of bounds

120Буферная копия без проверки размера входа ('Classic buffer overflow')

Invalid use of standard library memory routine

Invalid use of standard library string routine

Tainted NULL or non-null-terminated string

121Переполнение буфера на основе стека

Array access with tainted index

Destination buffer overflow in string manipulation

122Переполнение буфера на основе кучи

Pointer dereference with tainted offset

124Подземная запись буфера ('Buffer underflow')

Array access with tainted index

Buffer overflow from incorrect string format specifier

Destination buffer underflow in string manipulation

Pointer dereference with tainted offset

125Считайте вне границ

Array access with tainted index

Buffer overflow from incorrect string format specifier

Destination buffer overflow in string manipulation

126Перечитать буфер

Buffer overflow from incorrect string format specifier

127Перечитать буфер

Buffer overflow from incorrect string format specifier

128Ошибка переноса

Integer constant overflow

Integer conversion overflow

Integer overflow

Memory allocation with tainted size

Tainted sign change conversion

Tainted size of variable length array

Unsigned integer constant overflow

Unsigned integer conversion overflow

Unsigned integer overflow

129Неправильная валидация индекса массива

Array access with tainted index

Pointer dereference with tainted offset

130Неправильная обработка несогласованности параметра длины

Mismatch between data length and size

131Неправильное вычисление buffer size

Array access out of bounds

Memory allocation with tainted size

Pointer access out of bounds

Tainted sign change conversion

Tainted size of variable length array

Unsigned integer conversion overflow

Unsigned integer overflow

134Строка неконтролируемого формата

Tainted string format

135Неправильное вычисление длины многобайтовой строки

Destination buffer overflow in string manipulation

Misuse of narrow or wide character string

Unreliable cast of pointer

170Неправильное завершение по умолчанию

Missing null in string array

Misuse of readlink()

Tainted NULL or non-null-terminated string

188Опора на размещение данных/памяти

Invalid assumptions about memory organization

Memory comparison of padding data

Memory comparison of strings

Missing byte reordering when transferring data

Pointer access out of bounds

191Целочисленное нижнее течение (Wrap или wraparound)

Integer constant overflow

Integer conversion overflow

Integer overflow

Unsigned integer constant overflow

Unsigned integer conversion overflow

Unsigned integer overflow

192Целочисленная ошибка принуждения

Integer conversion overflow

Integer overflow

Sign change integer conversion overflow

Tainted sign change conversion

Unsigned integer conversion overflow

Unsigned integer overflow

194Неожиданное расширение знака

Sign change integer conversion overflow

Tainted sign change conversion

195Ошибка преобразования подписи в неподписанную

Sign change integer conversion overflow

Tainted sign change conversion

196Ошибка преобразования без подписи в подпись

Sign change integer conversion overflow

197Числовая ошибка усечения

Float conversion overflow

Integer conversion overflow

Unsigned integer conversion overflow

242Использование неотъемлемо опасной функции

Use of dangerous standard function

243Создание тюрьмы chroot без изменения рабочей директории

File manipulation after chroot without chdir

244Неправильная очистка памяти кучки перед релизом

Sensitive heap memory not cleared before release

362Параллельное выполнение с использованием общего ресурса с неподходящей синхронизацией ('Race Condition')

File descriptor exposure to child process

Opening previously opened resource

364Условие гонки обработчика сигналов

Function called from signal handler not asynchronous-safe (strict)

Function called from signal handler not asynchronous-safe

Shared data access within signal handler

366Условие гонки в потоке

Data race including atomic operations

Data race through standard library function call

Data race

375Возврат изменяемого объекта ненадежному вызывающему абоненту

Return of non const handle to encapsulated data member

401Неподходящий релиз памяти перед удалением последней ссылки

Memory leak

Thread-specific memory leak

415Double free

Deallocation of previously deallocated pointer

Missing reset of a freed pointer

416Использование после бесплатного

Missing reset of a freed pointer

Use of previously freed pointer

457Использование неинициализированной переменной

Member not initialized in constructor

Non-initialized pointer

Non-initialized variable

466Возврат значения указателя за пределы ожидаемой области значений

Array access out of bounds

Pointer access out of bounds

Unsafe conversion between pointer and integer

467Использование sizeof () для типа указателя

Possible misuse of sizeof

Wrong type used in sizeof

468Неправильное масштабирование указателя

Incorrect pointer scaling

469Использование вычитания указателя для определения размера

Subtraction or comparison between pointers to different arrays

476Удаление указателя NULL

Null pointer

Tainted NULL or non-null-terminated string

478Отсутствует случай по умолчанию в операторе switch

Missing case for switch condition

479Использование обработчиком сигналов функции, не входящей в систему

Function called from signal handler not asynchronous-safe (strict)

Function called from signal handler not asynchronous-safe

480Использование неправильного оператора

Invalid use of = (assignment) operator

Invalid use of == (equality) operator

481Назначение вместо сравнения

Invalid use of = (assignment) operator

482Сравнение вместо назначения

Invalid use of == (equality) operator

483Неправильное разделение блоков

Incorrectly indented statement

Semicolon on same line as if, for or while statement

484Опущенный оператор пропуск в switch

Missing break of switch case

558Использование гетлогина () в многопоточном приложении

Unsafe standard function

562Возврат адреса переменной стека

Pointer or reference to stack variable leaving scope

Use of automatic variable as putenv-family function argument

587Назначение фиксированного адреса указателю

Function pointer assigned with absolute address

Unsafe conversion between pointer and integer

676Использование потенциально опасной функции

Unsafe conversion from string to numerical value

Use of dangerous standard function

690Снятое значение возврата к нулевому разыменованию указателя

Invalid use of standard library memory routine

Invalid use of standard library routine

Invalid use of standard library string routine

Null pointer

Returned value of a sensitive function not checked

Standard function call with incorrect arguments

Tainted NULL or non-null-terminated string

Unprotected dynamic memory allocation

704Неправильное преобразование или приведение типов

Character value absorbed into EOF

Misuse of sign-extended character value

Precision loss in integer to float conversion

Qualifier removed in conversion

Unreliable cast of pointer

Wrong allocated object size for cast

762Несовпадающие стандартные программы управления памятью

Invalid free of pointer

Mismatched alloc/dealloc functions on Windows

767Доступ к критической частной переменной через общедоступный метод

Return of non const handle to encapsulated data member

783Логическая ошибка приоритета оператора

Possibly unintended evaluation of expression because of operator precedence rules

785Использование функции манипуляции путями без буфера максимального размера

Use of path manipulation function without maximum sized buffer checking

787Внеплановая запись

Destination buffer overflow in string manipulation

Destination buffer underflow in string manipulation

789Неконтролируемое выделение памяти

Memory allocation with tainted size

Tainted size of variable length array

Unprotected dynamic memory allocation

805Доступ к буферу с неправильным значением длины

Hard-coded object size used to manipulate memory

843Доступ ресурса с использованием несовместимого типа ('Type confusion')

Unreliable cast of pointer

910Использование дескриптора файла с истекшим сроком действия

Closing a previously closed resource

Standard function call with incorrect arguments

Use of previously closed resource

Похожие темы