cert-err34-c¶
此检查标记对字符串到数字转换函数的调用,这些函数未验证转换的有效性,例如 atoi()
或 scanf()
。它不会标记对 strtol()
或其他相关转换函数的调用,这些函数执行更好的错误检查。
#include <stdlib.h>
void func(const char *buff) {
int si;
if (buff) {
si = atoi(buff); /* 'atoi' used to convert a string to an integer, but function will
not report conversion errors; consider using 'strtol' instead. */
} else {
/* Handle error */
}
}
此检查对应于 CERT C 编码标准规则 ERR34-C。在将字符串转换为数字时检测错误.