Описание тега buffer-overflow

Обычно происходит, когда вы пытаетесь скопировать данные в буфер без проверки наличия достаточного места, что приводит к перезаписи данных в соседних ячейках.

Оперативная память разделена на ячейки памяти, каждая из которых способна хранить отдельный байт. Приложения используют разные размеры одного и того же типа данных для удовлетворения своих вычислительных потребностей, которые могут варьироваться от одного или нескольких (массивы) или динамически выделяемых (указатели). Проблемы обычно возникают, когда разработчики программного обеспечения используют массивы или указатели, не проверяя, что в целевом буфере достаточно места.

char Target[10];
char Input[20];
strcpy( Target, Input); // 1st Parameter: Destination, 2nd Parameter: Data

Перечисленный выше код плюс определенные условия могут свидетельствовать о повреждении переполнения буфера. Если кодировщик не примет необходимых мер предосторожности для проверки цели / ввода, это приведет к тому, что данные будут загружены в соседние ячейки памяти, что приведет к повреждению любого содержимого, хранящегося в них.

Такие результаты могут быть разрушительными, поскольку они влияют на общую целостность системы.