• [^] # Un autre ? Pas de pb :)

    Posté par . En réponse à la dépêche Failles de sécurité dans openssl. Évalué à 2.

    Tu es gentil aussi ;-)

    Tu as au moins vu le problème ? Parce que figure toi que le problème, il ne vient pas du strcpy() ...
    L'argument de func() est en fait arg1, qui compte 8 caractères. Et arg1 est recopié dans buffer, qui en fait 12. Donc pas de problème (ou presque ;-)

    Mais pour te faire plaisir, voici un autre exemple tiré du même article (et tu devrais vraiment aller acheter MISC ;-)

    1 #include <stdio.h>
    2 #include <string.h>
    3
    4 func(char *sm) {
    5 char buffer[128]="kab00m!!";
    6 char entry[1024];
    7
    8 strncpy(entry, sm, sizeof(entry)-1);
    9 entry[sizeof(entry)-1] = '0円';
    10
    11 strncat(buffer, entry, sizeof(buffer)-strlen(buffer));
    12
    13 printf ("%s\n", buffer);
    14 }
    15
    16 main(int argc, char *argv[])
    17 {
    18
    19 if (argc > 1) func(argv[1]);
    20
    21 }

    Que du strn*(),ça devrait te plaire :)

    Et pourtant ...