LINUX.ORG.RU

История изменений

Исправление X512, (текущая версия) :

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

Легко:

void Do()
{
	int buf[1000000];
	buf[0] = 1;
}

Если компилятор не вставляет проверку переполнения стека, то возможно перепрыгивание защитной страницы в начале стека и обращение к памяти перед началом стека.

Напомню что стек растёт в сторону уменьшения адресов и заканчивается защитной страницей для отлова переполнения стека.

Исходная версия X512, :

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

Легко:

void Do()
{
	int buf[1000000];
	buf[0] = 1;
}

Если компилятор не вставляет проверку переполнения стека, то возможно перепрыгивание защитной страницы в начале стека и обращение к памяти перед началом стека.