int func(char* str)
{
   char buffer[100];
   unsigned short len = strlen(str);
   if(len >= 100)
   {
        return (-1);
   }
   strncpy(buffer,str,strlen(str));
   return 0;
}
Этот код уязвим для атаки переполнения буфера, и я пытаюсь понять, почему. Я думаю, что это связано с тем, что len объявлен short вместо int, но я не уверен.
Любые идеи?
