mickbad
Messages postés71Date d'inscriptionmercredi 17 juillet 2002StatutMembreDernière intervention20 avril 2008 28 févr. 2006 à 17:17
Salut,
rigolo ça au niveau sortie
$ gcc LIBele.cpp && ./a.exe
Entrez un nombre inferieur a un millions en chiffres
9999999999
quatre milliards deux cent quatre-vingt-quatorze millions neuf cent soixante-sep
t mille deux cent quatre-vingt-quinze
Je sais il fallait écrire un nombre < 1000000 mais tu voies, on ne peut JAMAIS faire confiance à l'utilisateur !!
Mais vu qu'il gère les milliards, pourquoi s'arrêter au million;)
Et puis tu as de la chance justement que ça ne marche pas au delà de 4294977295 (tiens je reconnais cette limite ;) car ton "char c[150]" risquait d'exploser et ton programme avec !!
Pour faire simple : débordement de tampon possible qd on utilise des fonctions type strcpy, strcat ou sprintf sans vérification de la taille !
question sécurité : ce sont des fonctions à proscrire !
utilise de préférence strncpy, strncat ou snprintf où tu pourras spécifier la taille maximal !
28 févr. 2006 à 17:17
rigolo ça au niveau sortie
$ gcc LIBele.cpp && ./a.exe
Entrez un nombre inferieur a un millions en chiffres
9999999999
quatre milliards deux cent quatre-vingt-quatorze millions neuf cent soixante-sep
t mille deux cent quatre-vingt-quinze
Je sais il fallait écrire un nombre < 1000000 mais tu voies, on ne peut JAMAIS faire confiance à l'utilisateur !!
Mais vu qu'il gère les milliards, pourquoi s'arrêter au million;)
Et puis tu as de la chance justement que ça ne marche pas au delà de 4294977295 (tiens je reconnais cette limite ;) car ton "char c[150]" risquait d'exploser et ton programme avec !!
Pour faire simple : débordement de tampon possible qd on utilise des fonctions type strcpy, strcat ou sprintf sans vérification de la taille !
question sécurité : ce sont des fonctions à proscrire !
utilise de préférence strncpy, strncat ou snprintf où tu pourras spécifier la taille maximal !
enfin ... ça manque de commentaires !
bonne continuation
.Mick.