Функция пишет, чтобы буферизовать при отрицательном смещении с начала буфера
Целевое недостаточное наполнение буфера в обработке строк происходит, когда определенные функции обработки строк пишут в свой целевой буферный аргумент при отрицательном смещении с начала буфера.
Например, для функционального sprintf(char* buffer, const char* format)
, вы получаете buffer
из операции buffer = (char*)arr; ... buffer += offset;
. arr
является массивом, и offset
является отрицательной величиной.
Недостаточное наполнение буфера может вызвать неожиданное поведение, такое как повреждение памяти или остановка вашей системы. Недостаточное наполнение буфера также вводит риск инжекции кода.
Если целевой буферный аргумент следует из адресной арифметики с указателями, смотрите, постепенно уменьшаете ли вы указатель. Зафиксируйте декремент указателя путем изменения или исходного значения перед декрементом или декрементного значения.
Группа: Статическое ЗУ |
Язык: C | C++ |
Значение по умолчанию: на |
Синтаксис командной строки: STRLIB_BUFFER_UNDERFLOW |
Влияние: высоко |
ID CWE: 124, 786, 787 |