C vulnerabilities



我读到了C中字符串的漏洞,然后我发现了这段代码。有人能给我一个解释为什么这是脆弱的吗?提前谢谢。

char buf[MAXSIZE];
if (strlen(str) > MAXSIZE)
return;
strcpy(buf, str);                

此代码错误地检查了最大长度。C字符串在字符串的末尾有一个nul来标记字符串的末尾。strcpy((将复制它。为了适应这个nul,测试必须是:

if (strlen(str) >= MAXSIZE)

下面的代码也不正确。int i[10];int j=0;

while (j < 10000){
i[j] = 5;                
++j;
}

这段代码将在数组i的10个整数之后覆盖内存中的数据。这将创建一个未定义的行为,可能是崩溃,但可能更微妙。。。

相关内容

  • 没有找到相关文章

最新更新