aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDominik Maier <domenukk@gmail.com>2020-12-04 15:41:24 +0100
committerDominik Maier <domenukk@gmail.com>2020-12-04 15:41:24 +0100
commit1aebbd7490b39a39c31d473af536b7f932412cb6 (patch)
tree3b75a5a065efc2d363b3303c9f84cc11cfab1eb4 /include
parent330f33a4356f46f25d0930aa61ef18c78a559fea (diff)
parent3d233b34b88dc49b33e4d1f91668194c6f59637a (diff)
downloadafl++-1aebbd7490b39a39c31d473af536b7f932412cb6.tar.gz
Merge branch 'dev' of github.com:aflplusplus/aflplusplus into dev
Diffstat (limited to 'include')
-rw-r--r--include/afl-fuzz.h42
-rw-r--r--include/common.h2
2 files changed, 30 insertions, 14 deletions
diff --git a/include/afl-fuzz.h b/include/afl-fuzz.h
index 62d76323..bdf44def 100644
--- a/include/afl-fuzz.h
+++ b/include/afl-fuzz.h
@@ -312,6 +312,7 @@ enum {
/* 10 */ PY_FUNC_QUEUE_GET,
/* 11 */ PY_FUNC_QUEUE_NEW_ENTRY,
/* 12 */ PY_FUNC_INTROSPECTION,
+ /* 13 */ PY_FUNC_DESCRIBE,
PY_FUNC_COUNT
};
@@ -755,7 +756,7 @@ struct custom_mutator {
* When afl-fuzz was compiled with INTROSPECTION=1 then custom mutators can
* also give introspection information back with this function.
*
- * @param data pointer returned in afl_custom_init for this fuzz case
+ * @param data pointer returned in afl_custom_init by this custom mutator
* @return pointer to a text string (const char*)
*/
const char *(*afl_custom_introspection)(void *data);
@@ -771,7 +772,7 @@ struct custom_mutator {
*
* (Optional)
*
- * @param data pointer returned in afl_custom_init for this fuzz case
+ * @param data pointer returned in afl_custom_init by this custom mutator
* @param buf Buffer containing the test case
* @param buf_size Size of the test case
* @return The amount of fuzzes to perform on this queue entry, 0 = skip
@@ -783,7 +784,7 @@ struct custom_mutator {
*
* (Optional for now. Required in the future)
*
- * @param data pointer returned in afl_custom_init for this fuzz case
+ * @param data pointer returned in afl_custom_init by this custom mutator
* @param[in] buf Pointer to the input data to be mutated and the mutated
* output
* @param[in] buf_size Size of the input/output data
@@ -799,13 +800,28 @@ struct custom_mutator {
u8 *add_buf, size_t add_buf_size, size_t max_size);
/**
+ * Describe the current testcase, generated by the last mutation.
+ * This will be called, for example, to give the written testcase a name
+ * after a crash ocurred. It can help to reproduce crashing mutations.
+ *
+ * (Optional)
+ *
+ * @param data pointer returned by afl_customm_init for this custom mutator
+ * @paramp[in] max_description_len maximum size avaliable for the description.
+ * A longer return string is legal, but will be truncated.
+ * @return A valid ptr to a 0-terminated string.
+ * An empty or NULL return will result in a default description
+ */
+ const char *(*afl_custom_describe)(void *data, size_t max_description_len);
+
+ /**
* A post-processing function to use right before AFL writes the test case to
* disk in order to execute the target.
*
* (Optional) If this functionality is not needed, simply don't define this
* function.
*
- * @param[in] data pointer returned in afl_custom_init for this fuzz case
+ * @param[in] data pointer returned in afl_custom_init by this custom mutator
* @param[in] buf Buffer containing the test case to be executed
* @param[in] buf_size Size of the test case
* @param[out] out_buf Pointer to the buffer storing the test case after
@@ -832,7 +848,7 @@ struct custom_mutator {
*
* (Optional)
*
- * @param data pointer returned in afl_custom_init for this fuzz case
+ * @param data pointer returned in afl_custom_init by this custom mutator
* @param buf Buffer containing the test case
* @param buf_size Size of the test case
* @return The amount of possible iteration steps to trim the input.
@@ -851,7 +867,7 @@ struct custom_mutator {
*
* (Optional)
*
- * @param data pointer returned in afl_custom_init for this fuzz case
+ * @param data pointer returned in afl_custom_init by this custom mutator
* @param[out] out_buf Pointer to the buffer containing the trimmed test case.
* The library can reuse a buffer for each call
* and will have to free the buf (for example in deinit)
@@ -866,7 +882,7 @@ struct custom_mutator {
*
* (Optional)
*
- * @param data pointer returned in afl_custom_init for this fuzz case
+ * @param data pointer returned in afl_custom_init by this custom mutator
* @param success Indicates if the last trim operation was successful.
* @return The next trim iteration index (from 0 to the maximum amount of
* steps returned in init_trim). Negative on error.
@@ -879,7 +895,7 @@ struct custom_mutator {
*
* (Optional)
*
- * @param[in] data pointer returned in afl_custom_init for this fuzz case
+ * @param[in] data pointer returned in afl_custom_init by this custom mutator
* @param[in] buf Pointer to the input data to be mutated and the mutated
* output
* @param[in] buf_size Size of input data
@@ -898,7 +914,7 @@ struct custom_mutator {
*
* (Optional)
*
- * @param data pointer returned in afl_custom_init for this fuzz case
+ * @param data pointer returned in afl_custom_init by this custom mutator
* @return The probability (0-100).
*/
u8 (*afl_custom_havoc_mutation_probability)(void *data);
@@ -908,7 +924,7 @@ struct custom_mutator {
*
* (Optional)
*
- * @param data pointer returned in afl_custom_init for this fuzz case
+ * @param data pointer returned in afl_custom_init by this custom mutator
* @param filename File name of the test case in the queue entry
* @return Return True(1) if the fuzzer will fuzz the queue entry, and
* False(0) otherwise.
@@ -921,7 +937,7 @@ struct custom_mutator {
*
* (Optional)
*
- * @param data pointer returned in afl_custom_init for this fuzz case
+ * @param data pointer returned in afl_custom_init by this custom mutator
* @param filename_new_queue File name of the new queue entry
* @param filename_orig_queue File name of the original queue entry. This
* argument can be NULL while initializing the fuzzer
@@ -931,7 +947,7 @@ struct custom_mutator {
/**
* Deinitialize the custom mutator.
*
- * @param data pointer returned in afl_custom_init for this fuzz case
+ * @param data pointer returned in afl_custom_init by this custom mutator
*/
void (*afl_custom_deinit)(void *data);
@@ -1007,7 +1023,7 @@ void classify_counts(afl_forkserver_t *);
void init_count_class16(void);
void minimize_bits(afl_state_t *, u8 *, u8 *);
#ifndef SIMPLE_FILES
-u8 *describe_op(afl_state_t *, u8);
+u8 *describe_op(afl_state_t *, u8, size_t);
#endif
u8 save_if_interesting(afl_state_t *, void *, u32, u8);
u8 has_new_bits(afl_state_t *, u8 *);
diff --git a/include/common.h b/include/common.h
index 6e5039d8..125c3abf 100644
--- a/include/common.h
+++ b/include/common.h
@@ -31,8 +31,8 @@
#include <string.h>
#include <unistd.h>
#include <sys/time.h>
+#include <stdbool.h>
#include "types.h"
-#include "stdbool.h"
/* STRINGIFY_VAL_SIZE_MAX will fit all stringify_ strings. */