--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/programs/C0-long.c Tue Oct 08 02:22:53 2013 +0100
@@ -0,0 +1,47 @@
+#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)
+{
+ float my_float = 10.5; // in hex: \x41\x28\x00\x00
+ char buffer[28];
+
+ printf("my float value = %f\n", my_float);
+
+ strcpy(buffer, bar);
+
+ printf("my float value = %f\n", my_float);
+}
+
+int main (int argc, char **argv)
+{
+ foo("my string is too long !!!!! "); // all is normal
+ foo("my string is too long !!!!! \x10\x10\xc0\x42"); // overwrites my_float
+ return 0;
+}
+