相关疑难解决方法(0)

为什么这段代码容易受到缓冲区溢出攻击?

int func(char* str)
{
   char buffer[100];
   unsigned short len = strlen(str);

   if(len >= 100)
   {
        return (-1);
   }

   strncpy(buffer,str,strlen(str));
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码容易受到缓冲区溢出攻击,我正在试图找出原因.我认为它与len被宣布为一个short而不是一个int,但我不是很确定.

有任何想法吗?

c security buffer-overflow

148
推荐指数
3
解决办法
2万
查看次数

标签 统计

buffer-overflow ×1

c ×1

security ×1