aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--Makefile26
-rw-r--r--include/list.h3
-rw-r--r--test/unittests/unit_list.c2
-rw-r--r--test/unittests/unit_maybe_alloc.c4
5 files changed, 22 insertions, 15 deletions
diff --git a/.gitignore b/.gitignore
index 2687f959..c8a92b7d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,3 +47,5 @@ unicorn_mode/samples/*/\.test-*
unicorn_mode/samples/*/output/
core\.*
test/unittests/unit_maybe_alloc
+test/unittests/unit_preallocable
+test/unittests/unit_list
diff --git a/Makefile b/Makefile
index 23fcaeca..a193f357 100644
--- a/Makefile
+++ b/Makefile
@@ -64,8 +64,8 @@ ifneq "$(shell uname -m)" "x86_64"
endif
endif
-CFLAGS ?= -O3 -funroll-loops $(CFLAGS_OPT)
-override CFLAGS += -Wall -g -Wno-pointer-sign -D_FORTIFY_SOURCE=2 \
+CFLAGS ?= -O2 -funroll-loops $(CFLAGS_OPT) -D_FORTIFY_SOURCE=2
+override CFLAGS += -Wall -g -Wno-pointer-sign \
-I include/ -Werror -DAFL_PATH=\"$(HELPER_PATH)\" \
-DBIN_PATH=\"$(BIN_PATH)\" -DDOC_PATH=\"$(DOC_PATH)\"
@@ -151,10 +151,13 @@ ifdef STATIC
LDFLAGS += -lm -lpthread -lz -lutil
endif
+ASAN_CFLAGS=-fsanitize=address -fstack-protector-all
+ASAN_LDFLAGS+=-fsanitize=address -fstack-protector-all
+
ifdef ASAN_BUILD
$(info Compiling ASAN version of binaries)
- CFLAGS+=-fsanitize=address -fstack-protector-all
- LDFLAGS+=-fsanitize=address -fstack-protector-all
+ CFLAGS+="$ASAN_CFLAGS"
+ LDFLAGS+="$ASAN_LDFLAGS"
endif
ifdef PROFILING
@@ -313,27 +316,27 @@ document: $(COMM_HDR) include/afl-fuzz.h $(AFL_FUZZ_FILES) src/afl-common.o src/
$(CC) -D_AFL_DOCUMENT_MUTATIONS $(CFLAGS) $(CFLAGS_FLTO) $(AFL_FUZZ_FILES) src/afl-common.o src/afl-sharedmem.o src/afl-forkserver.o -o afl-fuzz-document $(PYFLAGS) $(LDFLAGS)
test/unittests/unit_maybe_alloc.o : $(COMM_HDR) include/alloc-inl.h test/unittests/unit_maybe_alloc.c $(AFL_FUZZ_FILES)
- $(CC) $(CFLAGS) -c test/unittests/unit_maybe_alloc.c -o test/unittests/unit_maybe_alloc.o
+ $(CC) $(CFLAGS) $(ASAN_CFLAGS) -c test/unittests/unit_maybe_alloc.c -o test/unittests/unit_maybe_alloc.o
test/unittests/unit_preallocable.o : $(COMM_HDR) include/alloc-inl.h test/unittests/unit_preallocable.c $(AFL_FUZZ_FILES)
- $(CC) $(CFLAGS) -c test/unittests/unit_preallocable.c -o test/unittests/unit_preallocable.o
+ $(CC) $(CFLAGS) $(ASAN_CFLAGS) -c test/unittests/unit_preallocable.c -o test/unittests/unit_preallocable.o
unit_maybe_alloc: test/unittests/unit_maybe_alloc.o
- $(CC) $(CFLAGS) -Wl,--wrap=exit -Wl,--wrap=printf test/unittests/unit_maybe_alloc.o -o test/unittests/unit_maybe_alloc $(LDFLAGS) -lcmocka
+ $(CC) $(CFLAGS) -Wl,--wrap=exit -Wl,--wrap=printf test/unittests/unit_maybe_alloc.o -o test/unittests/unit_maybe_alloc $(LDFLAGS) $(ASAN_LDFLAGS) -lcmocka
./test/unittests/unit_maybe_alloc
test/unittests/unit_list.o : $(COMM_HDR) include/list.h test/unittests/unit_list.c $(AFL_FUZZ_FILES)
- $(CC) $(CFLAGS) -c test/unittests/unit_list.c -o test/unittests/unit_list.o
+ $(CC) $(CFLAGS) $(ASAN_CFLAGS) -c test/unittests/unit_list.c -o test/unittests/unit_list.o
unit_list: test/unittests/unit_list.o
- $(CC) $(CFLAGS) -Wl,--wrap=exit -Wl,--wrap=printf test/unittests/unit_list.o -o test/unittests/unit_list $(LDFLAGS) -lcmocka
+ $(CC) $(CFLAGS) $(ASAN_CFLAGS) -Wl,--wrap=exit -Wl,--wrap=printf test/unittests/unit_list.o -o test/unittests/unit_list $(LDFLAGS) $(ASAN_LDFLAGS) -lcmocka
./test/unittests/unit_list
test/unittests/preallocable.o : $(COMM_HDR) include/afl-prealloc.h test/unittests/preallocable.c $(AFL_FUZZ_FILES)
- $(CC) $(CFLAGS) $(CFLAGS_FLTO) -c test/unittests/preallocable.c -o test/unittests/preallocable.o
+ $(CC) $(CFLAGS) $(ASAN_CFLAGS) $(CFLAGS_FLTO) -c test/unittests/preallocable.c -o test/unittests/preallocable.o
unit_preallocable: test/unittests/unit_preallocable.o
- $(CC) $(CFLAGS) -Wl,--wrap=exit -Wl,--wrap=printf test/unittests/unit_preallocable.o -o test/unittests/unit_preallocable $(LDFLAGS) -lcmocka
+ $(CC) $(CFLAGS) $(ASAN_CFLAGS) -Wl,--wrap=exit -Wl,--wrap=printf test/unittests/unit_preallocable.o -o test/unittests/unit_preallocable $(LDFLAGS) $(ASAN_LDFLAGS) -lcmocka
./test/unittests/unit_preallocable
unit: unit_maybe_alloc unit_preallocable unit_list
@@ -472,4 +475,3 @@ install: all $(MANPAGES)
install -m 644 docs/*.md $${DESTDIR}$(DOC_PATH)
cp -r testcases/ $${DESTDIR}$(MISC_PATH)
cp -r dictionaries/ $${DESTDIR}$(MISC_PATH)
-
diff --git a/include/list.h b/include/list.h
index c67b24b2..a0f23c85 100644
--- a/include/list.h
+++ b/include/list.h
@@ -56,7 +56,8 @@ typedef struct list {
static inline element_t *get_head(list_t *list) {
- return &list->element_prealloc_buf[0];
+ /* The first element is the head */
+ return list->element_prealloc_buf;
}
diff --git a/test/unittests/unit_list.c b/test/unittests/unit_list.c
index 6e0be7b6..7e8ef363 100644
--- a/test/unittests/unit_list.c
+++ b/test/unittests/unit_list.c
@@ -93,7 +93,7 @@ static void test_long_list(void **state) {
list_remove(&testlist, &vals[50]);
LIST_FOREACH(&testlist, u32, {
- printf("var: %d\n", *el);
+ // printf("var: %d\n", *el);
result2 += *el;
});
assert_int_not_equal(result1, result2);
diff --git a/test/unittests/unit_maybe_alloc.c b/test/unittests/unit_maybe_alloc.c
index 6a165dd4..a856fa08 100644
--- a/test/unittests/unit_maybe_alloc.c
+++ b/test/unittests/unit_maybe_alloc.c
@@ -75,7 +75,7 @@ static void test_zero_size() {
char *buf = NULL;
size_t size = 0;
- //assert_non_null(maybe_grow(BUF_PARAMS, 0));
+ assert_non_null(maybe_grow(BUF_PARAMS, 0));
free(buf);
buf = NULL;
size = 0;
@@ -87,6 +87,8 @@ static void test_zero_size() {
expect_assert_failure(ck_maybe_grow(BUF_PARAMS, 0));
+ ck_free(ptr);
+
}
static void test_unchanged_size(void **state) {