Warum ist dieser code anfällig für buffer-overflow-Angriffe?

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

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

   strncpy(buffer,str,strlen(str));
   return 0;
}

Dieser code ist anfällig für einen buffer-overflow Angriff, und ich versuche, herauszufinden, warum. Ich denke, es hat zu tun mit len erklärt wird, eine short statt einer intaber ich bin mir nicht wirklich sicher.

Irgendwelche Ideen?

InformationsquelleAutor der Frage Jason | 2015-04-28

Schreibe einen Kommentar