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:%s∖n, buffer2") | 12: |
|