gcc -fstack-protector не выдает ошибку
Кто-то знает, почему следующие строки кода выдают *** обнаружение разрушения стека *** ошибка
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char **argv)
{
char x[16];
strcpy(x,"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
}
но следующий код не бросает его?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char **argv)
{
char x[16];
x[17] = 'a';
}
Спасибо!!
1 ответ
Решение
Перезапись x[17]
не переопределяет канареечное значение, помещенное перед адресом возврата gcc.