progs/test.c
author Christian Urban <christian dot urban at kcl dot ac dot uk>
Mon, 06 Oct 2014 00:57:44 +0100
changeset 205 88416b7df38c
parent 203 c75a03ab8ac9
child 208 204564b899a0
permissions -rw-r--r--
updated

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

/*
  I used as environment the virtual machine provided here

    http://www.cis.upenn.edu/~cis551/box.tar

  This is Debian/Etch with Linux 2.6.18 with gcc 4.1.2 from 2008.
 
  Some installation notes for this virtual machine under VMWare
  are here

    http://www.cis.upenn.edu/~cis551/project1.pdf

  I run the virtial machine under MacOSX using the program 
  VirtualBox available for free from 

    https://www.virtualbox.org

  The C-program I compiled the program with 

    gcc -ggdb -fno-stack-protector -mpreferred-stack-boundary=2

 */


void foo (char *bar)
{
  unsigned long long my_long = 101010101;    // in hex: \xB5\x4A\x05\x06
  char  buffer[28];        

  printf("my_long value = %llu\n", my_long);

  strcpy(buffer, bar);  
 
  printf("my_long value = %llu\n", my_long);
}
 
int main (int argc, char **argv)
{
  foo("my string is too long !!!!!");                  // all is normal
  foo("my string is too long !!!!! \x15\xcd\x5b\x07"); // overwrites my_long
  return 0;
}