Research Article

Tag-Protector: An Effective and Dynamic Detection of Illegal Memory Accesses through Compile Time Code Instrumentation

Listing 1

An example C code with illegal memory accesses.
1: int funcall (int argc, char argv)
2:char buffer,ptr, buffer2 MAX_size;// stack alloc
3:ptr =(char ) malloc (MAX_size);// heap alloc
4:if(ptr == NULL) exit ();
5:buffer =ptr;
6:strcpy (buffer, argv 1);/possible heap overflow/
7:strcpy (buffer2, argv 2);/possible stack overflow/
8:free (buffer);
9:memcpy (ptr, buffer2, MAX_size) /dangling pointer dereference/
10:printf ("String one:%sn, buffer")/dangling pointer deref/
11:printf ("String two:%sn, buffer2")
12: