gcc -fstack-protector 不会抛出错误
gcc -fstack-protector does not throw error
有人知道为什么以下代码行会抛出 *** stack smashing detected *** 错误
#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';
}
谢谢!!
覆盖 x[17]
不会覆盖 gcc 放在 return 地址之前的 canary 值。
有人知道为什么以下代码行会抛出 *** stack smashing detected *** 错误
#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';
}
谢谢!!
覆盖 x[17]
不会覆盖 gcc 放在 return 地址之前的 canary 值。