summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2020-06-30 16:47:48 -0400
committerJakob Kaivo <jkk@ung.org>2020-06-30 16:47:48 -0400
commit543c1d44711c4a4cd1ee52c3717abfe2c79b344a (patch)
tree36ca054153361bf60ae0aefcc5f1db5cf0aaf491
parentaacd5c7f5eb7e9a247e453a13ce7534bd28aed34 (diff)
add tests for attempting to free() or realloc() on an invalid address
-rw-r--r--Makefile8
-rw-r--r--test/invalid-free.c12
-rw-r--r--test/invalid-realloc.c12
3 files changed, 30 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index fb4d4b0..382c86b 100644
--- a/Makefile
+++ b/Makefile
@@ -16,13 +16,15 @@ TESTS=$(BINDIR)/overflow \
$(BINDIR)/realloc \
$(BINDIR)/use-after-free \
$(BINDIR)/double-free \
- $(BINDIR)/macros
+ $(BINDIR)/macros \
+ $(BINDIR)/invalid-free \
+ $(BINDIR)/invalid-realloc
all: $(LIBDIR)/libmapalloc.a $(LIBDIR)/libwrapalloc.so
#$(LIBDIR)/libmapalloc.so
-tests: $(TESTS) $(BINDIR)/wrapper
+tests: all $(TESTS) $(BINDIR)/wrapper
$(OBJDIR)/mapalloc.o: $(SRCDIR)/mapalloc.c $(INCDIR)/mapalloc.h
@mkdir -p $(@D)
@@ -52,6 +54,8 @@ $(BINDIR)/realloc: $(TESTDIR)/realloc.c
$(BINDIR)/use-after-free: $(TESTDIR)/use-after-free.c
$(BINDIR)/double-free: $(TESTDIR)/double-free.c
$(BINDIR)/macros: $(TESTDIR)/macros.c
+$(BINDIR)/invalid-free: $(TESTDIR)/invalid-free.c
+$(BINDIR)/invalid-realloc: $(TESTDIR)/invalid-realloc.c
$(BINDIR)/wrapper: $(TESTDIR)/wrapper.c
@mkdir -p $(@D)
diff --git a/test/invalid-free.c b/test/invalid-free.c
new file mode 100644
index 0000000..5aba5e6
--- /dev/null
+++ b/test/invalid-free.c
@@ -0,0 +1,12 @@
+#define _POSIX_C_SOURCE 200809L
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include "mapalloc.h"
+
+int main(void)
+{
+ int foo = 42;
+ MA_free(&foo);
+ printf("freed\n");
+}
diff --git a/test/invalid-realloc.c b/test/invalid-realloc.c
new file mode 100644
index 0000000..f60bedc
--- /dev/null
+++ b/test/invalid-realloc.c
@@ -0,0 +1,12 @@
+#define _POSIX_C_SOURCE 200809L
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include "mapalloc.h"
+
+int main(void)
+{
+ int foo = 42;
+ int *ptr = MA_realloc(&foo, sizeof(int));
+ printf("%d\n", *ptr);
+}