diff options
-rw-r--r-- | include/alloc-inl.h | 28 | ||||
-rw-r--r-- | llvm_mode/afl-llvm-rt-lto.o.c | 3 | ||||
-rw-r--r-- | llvm_mode/afl-llvm-rt.o.c | 6 |
3 files changed, 20 insertions, 17 deletions
diff --git a/include/alloc-inl.h b/include/alloc-inl.h index a8483a9e..485446de 100644 --- a/include/alloc-inl.h +++ b/include/alloc-inl.h @@ -233,19 +233,17 @@ static inline u8 *DFL_ck_memdup_str(u8 *mem, u32 size) { /* User-facing macro to sprintf() to a dynamically allocated buffer. */ -#define alloc_printf(_str...) \ - ({ \ - \ - \ - \ - u8 *_tmp; \ - s32 _len = snprintf(NULL, 0, _str); \ - if (_len < 0) FATAL("Whoa, snprintf() fails?!"); \ - _tmp = ck_alloc(_len + 1); \ - snprintf((char *)_tmp, _len + 1, _str); \ - _tmp; - -}) +#define alloc_printf(_str...) \ + ({ \ + \ + u8 *_tmp; \ + s32 _len = snprintf(NULL, 0, _str); \ + if (_len < 0) FATAL("Whoa, snprintf() fails?!"); \ + _tmp = ck_alloc(_len + 1); \ + snprintf((char *)_tmp, _len + 1, _str); \ + _tmp; \ + \ + }) /* Macro to enforce allocation limits as a last-resort defense against integer overflows. */ @@ -263,9 +261,7 @@ static inline u8 *DFL_ck_memdup_str(u8 *mem, u32 size) { \ if (!(_r)) ABORT("Out of memory: can't allocate %u bytes", (_s)); \ \ - } - -while (0) + } while (0) /* Magic tokens used to mark used / freed chunks. */ diff --git a/llvm_mode/afl-llvm-rt-lto.o.c b/llvm_mode/afl-llvm-rt-lto.o.c index 5921f968..3606cedd 100644 --- a/llvm_mode/afl-llvm-rt-lto.o.c +++ b/llvm_mode/afl-llvm-rt-lto.o.c @@ -10,6 +10,8 @@ */ +#include <stdio.h> + // to prevent the function from being removed unsigned char __afl_lto_mode = 0; @@ -17,6 +19,7 @@ unsigned char __afl_lto_mode = 0; __attribute__((constructor(0))) void __afl_auto_init_globals(void) { + if (getenv("AFL_DEBUG")) fprintf(stderr, "[__afl_auto_init_globals]\n"); __afl_lto_mode = 1; } diff --git a/llvm_mode/afl-llvm-rt.o.c b/llvm_mode/afl-llvm-rt.o.c index 56038f7a..ce8df332 100644 --- a/llvm_mode/afl-llvm-rt.o.c +++ b/llvm_mode/afl-llvm-rt.o.c @@ -63,7 +63,11 @@ is used for instrumentation output before __afl_map_shm() has a chance to run. It will end up as .comm, so it shouldn't be too wasteful. */ -u8 __afl_area_initial[MAP_SIZE]; +#ifdef AFL_REAL_LD +u8 __afl_area_initial[256000]; +#else +u8 __afl_area_initial[MAP_SIZE]; +#endif u8 *__afl_area_ptr = __afl_area_initial; u8 *__afl_dictionary; |