Necesito demostrar un caso de prueba q detecte el desbordamiento del buffer en memoria monton que se puede producir en este programa:
<pre lang='c' lineno='1'>#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 intentado con muchos valores y no logro encontrar la solución, yo utilizo el Ubuntu con (x86) como referencia.
Saludos.