aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/afl-fuzz.h12
-rw-r--r--include/alloc-inl.h115
2 files changed, 10 insertions, 117 deletions
diff --git a/include/afl-fuzz.h b/include/afl-fuzz.h
index cd6f7173..034e8de2 100644
--- a/include/afl-fuzz.h
+++ b/include/afl-fuzz.h
@@ -172,6 +172,14 @@ struct extra_data {
};
+struct auto_extra_data {
+
+ u8 data[MAX_AUTO_EXTRA]; /* Dictionary token data */
+ u32 len; /* Dictionary token length */
+ u32 hit_cnt; /* Use count in the corpus */
+
+};
+
/* Fuzzing stages */
enum {
@@ -571,8 +579,8 @@ typedef struct afl_state {
struct extra_data *extras; /* Extra tokens to fuzz with */
u32 extras_cnt; /* Total number of tokens read */
- struct extra_data *a_extras; /* Automatically selected extras */
- u32 a_extras_cnt; /* Total number of tokens available */
+ struct auto_extra_data a_extras[MAX_AUTO_EXTRAS]; /* Automatically selected extras */
+ u32 a_extras_cnt; /* Total number of tokens available */
/* afl_postprocess API - Now supported via custom mutators */
diff --git a/include/alloc-inl.h b/include/alloc-inl.h
index 832b2de4..0518a8c9 100644
--- a/include/alloc-inl.h
+++ b/include/alloc-inl.h
@@ -176,44 +176,6 @@ static inline u8 *DFL_ck_strdup(u8 *str) {
return (u8 *)memcpy(ret, str, size);
}
-
-/* Create a buffer with a copy of a memory block. Returns NULL for zero-sized
- or NULL inputs. */
-
-static inline void *DFL_ck_memdup(void *mem, u32 size) {
-
- void *ret;
-
- if (!mem || !size) { return NULL; }
-
- ALLOC_CHECK_SIZE(size);
- ret = malloc(size);
- ALLOC_CHECK_RESULT(ret, size);
-
- return memcpy(ret, mem, size);
-
-}
-
-/* Create a buffer with a block of text, appending a NUL terminator at the end.
- Returns NULL for zero-sized or NULL inputs. */
-
-static inline u8 *DFL_ck_memdup_str(u8 *mem, u32 size) {
-
- u8 *ret;
-
- if (!mem || !size) { return NULL; }
-
- ALLOC_CHECK_SIZE(size);
- ret = (u8 *)malloc(size + 1);
- ALLOC_CHECK_RESULT(ret, size);
-
- memcpy(ret, mem, size);
- ret[size] = 0;
-
- return ret;
-
-}
-
/* In non-debug mode, we just do straightforward aliasing of the above
functions to user-visible names such as ck_alloc(). */
@@ -222,8 +184,6 @@ static inline u8 *DFL_ck_memdup_str(u8 *mem, u32 size) {
#define ck_realloc DFL_ck_realloc
#define ck_realloc_block DFL_ck_realloc_block
#define ck_strdup DFL_ck_strdup
- #define ck_memdup DFL_ck_memdup
- #define ck_memdup_str DFL_ck_memdup_str
#define ck_free DFL_ck_free
#define alloc_report()
@@ -489,55 +449,6 @@ static inline u8 *DFL_ck_strdup(u8 *str) {
}
-/* Create a buffer with a copy of a memory block. Returns NULL for zero-sized
- or NULL inputs. */
-
-static inline void *DFL_ck_memdup(void *mem, u32 size) {
-
- void *ret;
-
- if (!mem || !size) return NULL;
-
- ALLOC_CHECK_SIZE(size);
- ret = malloc(size + ALLOC_OFF_TOTAL);
- ALLOC_CHECK_RESULT(ret, size);
-
- ret += ALLOC_OFF_HEAD;
-
- ALLOC_C1(ret) = ALLOC_MAGIC_C1;
- ALLOC_S(ret) = size;
- ALLOC_C2(ret) = ALLOC_MAGIC_C2;
-
- return memcpy(ret, mem, size);
-
-}
-
-/* Create a buffer with a block of text, appending a NUL terminator at the end.
- Returns NULL for zero-sized or NULL inputs. */
-
-static inline u8 *DFL_ck_memdup_str(u8 *mem, u32 size) {
-
- u8 *ret;
-
- if (!mem || !size) return NULL;
-
- ALLOC_CHECK_SIZE(size);
- ret = malloc(size + ALLOC_OFF_TOTAL + 1);
- ALLOC_CHECK_RESULT(ret, size);
-
- ret += ALLOC_OFF_HEAD;
-
- ALLOC_C1(ret) = ALLOC_MAGIC_C1;
- ALLOC_S(ret) = size;
- ALLOC_C2(ret) = ALLOC_MAGIC_C2;
-
- memcpy(ret, mem, size);
- ret[size] = 0;
-
- return ret;
-
-}
-
#ifndef DEBUG_BUILD
/* In non-debug mode, we just do straightforward aliasing of the above
@@ -548,8 +459,6 @@ static inline u8 *DFL_ck_memdup_str(u8 *mem, u32 size) {
#define ck_realloc DFL_ck_realloc
#define ck_realloc_block DFL_ck_realloc_block
#define ck_strdup DFL_ck_strdup
- #define ck_memdup DFL_ck_memdup
- #define ck_memdup_str DFL_ck_memdup_str
#define ck_free DFL_ck_free
#define alloc_report()
@@ -713,24 +622,6 @@ static inline void *TRK_ck_strdup(u8 *str, const char *file, const char *func,
}
-static inline void *TRK_ck_memdup(void *mem, u32 size, const char *file,
- const char *func, u32 line) {
-
- void *ret = DFL_ck_memdup(mem, size);
- TRK_alloc_buf(ret, file, func, line);
- return ret;
-
-}
-
-static inline void *TRK_ck_memdup_str(void *mem, u32 size, const char *file,
- const char *func, u32 line) {
-
- void *ret = DFL_ck_memdup_str(mem, size);
- TRK_alloc_buf(ret, file, func, line);
- return ret;
-
-}
-
static inline void TRK_ck_free(void *ptr, const char *file, const char *func,
u32 line) {
@@ -754,12 +645,6 @@ static inline void TRK_ck_free(void *ptr, const char *file, const char *func,
#define ck_strdup(_p1) TRK_ck_strdup(_p1, __FILE__, __FUNCTION__, __LINE__)
- #define ck_memdup(_p1, _p2) \
- TRK_ck_memdup(_p1, _p2, __FILE__, __FUNCTION__, __LINE__)
-
- #define ck_memdup_str(_p1, _p2) \
- TRK_ck_memdup_str(_p1, _p2, __FILE__, __FUNCTION__, __LINE__)
-
#define ck_free(_p1) TRK_ck_free(_p1, __FILE__, __FUNCTION__, __LINE__)
#endif /* ^!DEBUG_BUILD */