读书人

C语言风险函数

发布时间: 2012-12-24 10:43:13 作者: rapoo

C语言危险函数

最危险:gets  使用 fgets(buf, size, stdin)。这几乎总是一个大问题!很危险:strcpy  改为使用 strncpy。strcat 改为使用 strncat。sprintf 改为使用 snprintf,或者使用精度说明符。scanf 使用精度说明符,或自己进行解析。sscanf 使用精度说明符,或自己进行解析。fscanf 使用精度说明符,或自己进行解析。vfscanf 使用精度说明符,或自己进行解析。vsprintf 改为使用 vsnprintf,或者使用精度说明符。vscanf 使用精度说明符,或自己进行解析。vsscanf 使用精度说明符,或自己进行解析。streadd 确保分配的目的地参数大小是源参数大小的四倍。strecpy 确保分配的目的地参数大小是源参数大小的四倍。很危险(或稍小,取决于实现):realpath 分配缓冲区大小为 MAXPATHLEN。同样,手工检查参数以确保输入参数不超过 MAXPATHLEN。syslog 在将字符串输入传递给该函数之前,将所有字符串输入截成合理的大小。getopt 在将字符串输入传递给该函数之前,将所有字符串输入截成合理的大小。getopt_long 在将字符串输入传递给该函数之前,将所有字符串输入截成合理的大小。getpass 在将字符串输入传递给该函数之前,将所有字符串输入截成合理的大小。危险:strtrns 手工检查来查看目的地大小是否至少与源字符串相等。中等危险:getchar  如果在循环中使用该函数,确保检查缓冲区边界。fgetc 如果在循环中使用该函数,确保检查缓冲区边界。getc 如果在循环中使用该函数,确保检查缓冲区边界。read 如果在循环中使用该函数,确保检查缓冲区边界。低危险:bcopy 确保缓冲区大小与它所说的一样大。fgets 确保缓冲区大小与它所说的一样大。memcpy 确保缓冲区大小与它所说的一样大。snprintf 确保缓冲区大小与它所说的一样大。strccpy 确保缓冲区大小与它所说的一样大。strcadd 确保缓冲区大小与它所说的一样大。strncpy 确保缓冲区大小与它所说的一样大。vsnprintf 确保缓冲区大小与它所说的一样大。

读书人网 >C语言

热点推荐