用來保護棧不被毀壞。

void function(char *str) {
   char buffer[16];
 
   strcpy(buffer,str);
}
 
void main() {
  char large_string[256];
  int i;
 
  for( i = 0; i < 255; i++)
    large_string[i] = 'A';
 
  function(large_string);
}
$ gcc -fstack-protector test.c
$ ./a.out
*** stack smashing detected ***:  terminated

相關資料

外部連結

登录