复制太多了

char buf[8]; /* tiny buffer, easy to overflow */

printf("What is your name?\n");
scanf("%s", buf); /* WRONG */
scanf("%7s", buf); /* RIGHT */

如果用户输入的字符串长度超过 7 个字符(空终止符为 -1),则缓冲区 buf 后面的内存将被覆盖。这会导致未定义的行为。恶意黑客经常利用此漏洞来覆盖返回地址,并将其更改为黑客恶意代码的地址。