Página 1 de 1

Un caso de Prueba: Desbordamiento de Buffer

Publicado: Mié Jun 17, 2009 8:54 pm
por jvmjunior
Hola, necesito identificar un caso de prueba que detecte el desbordamiento de buffer en la
memoria montón que se puede producir en el programa siguiente:

Código: Seleccionar todo

#include <stdio.h>

void comprobar (char *pas) {
 char *passwd;
 
 passwd = (char *) malloc (sizeof (char) * 8); 
 strcpy(passwd, pas);
 passwd = (char *) strlwr(passwd);
 if (strcmp(passwd, "mipas")==0) printf ("Password correcto. ");
 else printf ("Password incorrecto. ");
 return;
}

int main(int argc, char *argv[]) {
 int i;
 
 comprobar (argv[1]);
 printf ("Finaliza. ");
 scanf("%d", &i);
 return 0;
}

He puesto valores de mas de 50 caracteres por exagerar un poco y no pasa nada, porfavor si alguien puede encontrarle algun valor para desborarlo. Yo utilizo el Ubuntu.

Gracias.