summaryrefslogtreecommitdiffstats
path: root/tm.c
diff options
context:
space:
mode:
authorIliyan Malchev <malchev@google.com>2011-08-08 11:24:41 -0700
committerIliyan Malchev <malchev@google.com>2011-08-08 11:46:17 -0700
commita40968e9b9abcdcc042948ea73346b020279d4b7 (patch)
tree926da5b4447017617fcc255b490eaee5174a4a9a /tm.c
parent8558b0909d3f42288f488e6fd1341877c639a594 (diff)
downloadandroid_hardware_ti_omap4-a40968e9b9abcdcc042948ea73346b020279d4b7.tar.gz
android_hardware_ti_omap4-a40968e9b9abcdcc042948ea73346b020279d4b7.tar.bz2
android_hardware_ti_omap4-a40968e9b9abcdcc042948ea73346b020279d4b7.zip
initial commit
Change-Id: I8f7a7eeece0e516efa486b77e9d97805c0e65d3e Signed-off-by: Iliyan Malchev <malchev@google.com>
Diffstat (limited to 'tm.c')
-rw-r--r--tm.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/tm.c b/tm.c
new file mode 100644
index 0000000..c29a190
--- /dev/null
+++ b/tm.c
@@ -0,0 +1,54 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+
+static void printf_log(const char *fmt, ...)
+{
+ va_list lst;
+ va_start(lst, fmt);
+ vprintf(fmt, lst);
+ va_end(lst);
+}
+
+/* Override this for non-printf reporting */
+extern void (*malloc_log)(const char *fmt, ...);
+static void ctor(void) __attribute__((constructor));
+static void ctor(void)
+{
+ malloc_log = printf_log;
+}
+
+int main(void)
+{
+ char *ptr[6];
+ char *uaf;
+ char *cf, *cb;
+
+ ptr[0] = malloc(10);
+ ptr[1] = calloc(1,20);
+ ptr[2] = malloc(30);
+ ptr[3] = malloc(40);
+ ptr[4] = malloc(50);
+ ptr[5] = malloc(60);
+
+ free(ptr[1]);
+ free(ptr[1]);
+ free(ptr[2]);
+ ptr[2] = realloc(ptr[2], 300);
+// free(ptr[2]);
+// free(ptr[2]);
+
+ uaf = ptr[3];
+ free(uaf);
+ uaf[5] = 'a';
+
+ cf = ptr[4];
+ cf[-1] = 'a';
+
+ cb = ptr[5];
+ cb[60] = 'a';
+
+ sleep(10);
+
+ return 0;
+}