Was könnte dies werden verursacht Pufferüberlauf?

Hallo, ich bin versucht zu kompilieren Sie den folgenden code,

#include <stdio.h>
#include <string.h>
int main()
{
int i;
char a[3] = {'1', '2', '3'},b[3] = {'3', '2', '1'};
strcpy(a,b);
for(i=0; i<3; i++)
printf("%s",a);
return 0;
}

Aber ich erhalte die folgende Fehlermeldung(Buffer Overflow)

*** buffer overflow detected ***: ./prog terminated
======= Backtrace: =========
/lib/libc.so.6(__fortify_fail+0x48)[0xb7653ae8]
/lib/libc.so.6[0xb7651b30]
/lib/libc.so.6(__strcpy_chk+0x44)[0xb7650e14]
./prog[0x80484c9]
./prog[0x80483c1]
======= Memory map: ========

Nun habe ich nicht bekommen, was dazu führt, dass ein buffer-overflow hier. Kann bitte jemand mir helfen mit ihm?
Vielen Dank im adcance.

InformationsquelleAutor fuddin | 2011-12-08
Schreibe einen Kommentar