Re: Linux-2.4.22 memory overwriting

From: Roberto Sanchez
Date: Sun Feb 01 2004 - 07:35:41 EST


Julien Rebetez wrote:
Hi !
I've writen the following program :


#include <stdio.h>

int main ()
{
int p[4];
p[0]=1;
p[1]=2;
p[2]=3;
p[3]=4;
p[4]=5;

printf ("%i, %i, %i, %i, %i\n", p[0], p[1], p[2], p[3],
p[4]);
return 0;
}

I compile it with :

gcc -o test test.c -Wall

and when i launch it, the output is :

julien:$> ./test
1, 2, 3, 4, 5

Should I not get a SIGSEV from the system ? Isn't it dangerous to allow the user to put 5 elements in a 4 elements tab?

(tested on Linux 2.4.22 on a i686)

Thanks

Remember that C was written by experts for use by experts. C makes
the unfortunate assumption that you know *exactly* what you are doing.
This flexibility is great for tho advanced system programmer, but
dangerous for the unwary.

-Roberto

Attachment: signature.asc
Description: OpenPGP digital signature