Может ли переполнение буфера стека вызвать проблемы с повреждением кучи без переполнения адреса возврата? Если да, то можете ли вы привести пример?
Может ли переполнение буфера стека привести к повреждению кучи?
comment
Какой язык? Какая платформа?
- person Mikkel Løkke   schedule 29.03.2014
Ответы (1)
Может ли это привести к повреждению кучи, во многом зависит от платформы.
Но скажем, например, что переполнение буфера перезаписывает переменную-указатель, так что она получает новое значение, которое оказывается другим, но допустимым указателем. Если затем код освобождает указанный указатель (не зная, что теперь это что-то другое), тогда код, который ссылается на этот указатель, может дать сбой или вести себя неустойчиво, потому что память была преждевременно освобождена и, возможно, перераспределена для другой цели.
person
500 - Internal Server Error
schedule
29.03.2014
Отличный ответ! Спасибо!
- person thel0rax; 30.03.2014
Я видел такую ситуацию, когда указатель
this
высыпался из регистра, сохраняемого вызовом, в стек, а затем стек перезаписывался.
- person Alex Guteniev; 15.06.2021