C - 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';
}

谢谢!!

覆盖x[17]不会覆盖 gcc 在返回地址之前放置的金丝雀值。

相关内容

最新更新