~jkaivo/mapalloc

c4a294e498cd456c5421b3ffebdd64b1e15a062d — Jakob Kaivo 2 years ago bbac766
add wrapper library to LD_PRELOAD malloc(), calloc(), realloc(), and free()
2 files changed, 32 insertions(+), 2 deletions(-)

M Makefile
A src/wrap.c
M Makefile => Makefile +11 -2
@@ 6,9 6,10 @@ OBJDIR=obj
SRCDIR=src
INCDIR=include
TESTDIR=test
CFLAGS=-I$(INCDIR) -Wall -Wextra -Wpedantic -g
CFLAGS=-I$(INCDIR) -Wall -Wextra -Wpedantic -g -fPIC

OBJECTS=$(OBJDIR)/mapalloc.o
WRAPOBJECTS=$(OBJECTS) $(OBJDIR)/wrap.o
TESTS=$(BINDIR)/overflow \
	$(BINDIR)/underflow \
	$(BINDIR)/zero \


@@ 16,7 17,7 @@ TESTS=$(BINDIR)/overflow \
	$(BINDIR)/use-after-free \
	$(BINDIR)/double-free

all: $(LIBDIR)/libmapalloc.a 
all: $(LIBDIR)/libmapalloc.a $(LIBDIR)/libwrapalloc.so

#$(LIBDIR)/libmapalloc.so



@@ 26,6 27,10 @@ $(OBJDIR)/mapalloc.o: $(SRCDIR)/mapalloc.c $(INCDIR)/mapalloc.h
	@mkdir -p $(@D)
	$(CC) -c -o $@ $(CFLAGS) $(SRCDIR)/$(*F).c

$(OBJDIR)/wrap.o: $(SRCDIR)/wrap.c $(INCDIR)/mapalloc.h
	@mkdir -p $(@D)
	$(CC) -c -o $@ $(CFLAGS) $(SRCDIR)/$(*F).c

$(LIBDIR)/libmapalloc.a: $(OBJECTS)
	@mkdir -p $(@D)
	$(AR) $(ARFLAGS) $@ $<


@@ 34,6 39,10 @@ $(LIBDIR)/libmapalloc.so: $(OBJECTS)
	@mkdir -p $(@D)
	$(CC) -o $@ -shared $(OBJECTS)

$(LIBDIR)/libwrapalloc.so: $(WRAPOBJECTS)
	@mkdir -p $(@D)
	$(CC) -o $@ -shared $(WRAPOBJECTS)

$(TESTS): $(LIBDIR)/libmapalloc.a
$(BINDIR)/overflow: $(TESTDIR)/overflow.c
$(BINDIR)/underflow: $(TESTDIR)/underflow.c

A src/wrap.c => src/wrap.c +21 -0
@@ 0,0 1,21 @@
#include "mapalloc.h"

void *malloc(size_t n)
{
	return map_malloc(n);
}

void *calloc(size_t n, size_t e)
{
	return map_calloc(n, e);
}

void *realloc(void *p, size_t n)
{
	return map_realloc(p, n);
}

void free(void *p)
{
	map_free(p);
}