diff options
author | Jakob Kaivo <jkk@ung.org> | 2020-06-30 15:31:31 -0400 |
---|---|---|
committer | Jakob Kaivo <jkk@ung.org> | 2020-06-30 15:31:31 -0400 |
commit | f2a8df6171b3eae8c949c892e8a35d7acd51084c (patch) | |
tree | 5db460a79a28c85691f9ffb4a9f0cc1f65af0be3 | |
parent | 62961fe31686bb1b4c071e128047a49f321492e9 (diff) |
add a test program that can be wrapped with LD_PRELOAD
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | test/wrapper.c | 22 |
2 files changed, 27 insertions, 1 deletions
@@ -21,7 +21,7 @@ all: $(LIBDIR)/libmapalloc.a $(LIBDIR)/libwrapalloc.so #$(LIBDIR)/libmapalloc.so -tests: $(TESTS) +tests: $(TESTS) $(BINDIR)/wrapper $(OBJDIR)/mapalloc.o: $(SRCDIR)/mapalloc.c $(INCDIR)/mapalloc.h @mkdir -p $(@D) @@ -51,6 +51,10 @@ $(BINDIR)/realloc: $(TESTDIR)/realloc.c $(BINDIR)/use-after-free: $(TESTDIR)/use-after-free.c $(BINDIR)/double-free: $(TESTDIR)/double-free.c +$(BINDIR)/wrapper: $(TESTDIR)/wrapper.c + @mkdir -p $(@D) + $(CC) -o $@ $(CFLAGS) $(TESTDIR)/$(@F).c + $(TESTS): @mkdir -p $(@D) $(CC) -o $@ $(CFLAGS) $(TESTDIR)/$(@F).c -L$(LIBDIR) -lmapalloc diff --git a/test/wrapper.c b/test/wrapper.c new file mode 100644 index 0000000..a260894 --- /dev/null +++ b/test/wrapper.c @@ -0,0 +1,22 @@ +#define _POSIX_C_SOURCE 200809L +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int main(void) +{ + const char buf[] = "THIS IS A CONSTANT STRING"; + + char *ptr = realloc(NULL, sizeof(buf)); + memcpy(ptr, buf, sizeof(buf)); + printf("%p: %s\n", ptr, ptr); + + ptr = realloc(ptr, sizeof(buf) * 2); + memcpy(ptr + sizeof(buf) - 1, buf, sizeof(buf)); + printf("%p: %s\n", ptr, ptr); + + ptr = realloc(ptr, sizeof(buf) * sysconf(_SC_PAGESIZE)); + memcpy(ptr + (2 * sizeof(buf)) - 2, buf, sizeof(buf)); + printf("%p: %s\n", ptr, ptr); +} |