Cppcheck对scanf函数显示以下警告:
Message: scanf函数没有设置字段宽度限制,可能会因为输入数据过大而导致崩溃。要修复此错误,请添加字段宽度说明符: %s => %20s %i => %3i
以下是一个可能会崩溃的示例程序:
#include int main() { int a; scanf("%i", &a); return 0; }
要使其崩溃: perl -e 'print "5"x2100000' | ./a.out
我无法通过“huge input data”来使该程序崩溃。具体应该输入什么才能导致崩溃?我也不理解这个警告中的最后一行的含义:
perl -e ...