今天在看书的过程中发现书上说strcpy函数很不安全,最好别用。我怀着好奇的心情去看个究竟,看看这个函数不安全在什么地方。首先晒出自己写的这个“很危险”的strcpy!
这个程序究竟不安全在哪呢?
在main函数中,fgets函数获取不大于BUF_SIZE-1长度的字符到缓冲区buf,如果实际输入的长度大于这个值,那么就会有一部分数据溢出缓冲区,覆盖了其他数据。如果以root身份运行此程序,并且多余的输入是一些破坏性的代码,则有可能给系统带来安全隐患。因此,要对输入收据进行检查,如果溢出,则错误并退出。