mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-14 11:08:06 +00:00
Support multiple custom mutators (#282)
* Make a list of custom mutators using env variable * Set up multiple custom mutators * Add destroy custom mutator and changes to load_custom_mutator * Use array instead of list, make changes to afl-fuzz-one for multiple mutators * Make change to fuzz-one custom_queue_get to support multiple mutators * Modify custom python mutator support * Fix bug * Fix missing afl->mutator->data * Revert to list with max count * Change custom_pre_save hook and code format * Free custom_mutator struct in the list * Add testcase for multiple custom mutators * Resolve merge conflict
This commit is contained in:
@ -140,15 +140,20 @@ void add_to_queue(afl_state_t *afl, u8 *fname, u32 len, u8 passed_det) {
|
||||
|
||||
afl->last_path_time = get_cur_time();
|
||||
|
||||
if (afl->mutator && afl->mutator->afl_custom_queue_new_entry) {
|
||||
if (afl->custom_mutators_count) {
|
||||
|
||||
u8 *fname_orig = NULL;
|
||||
LIST_FOREACH(&afl->custom_mutator_list, struct custom_mutator, {
|
||||
|
||||
/* At the initialization stage, queue_cur is NULL */
|
||||
if (afl->queue_cur) { fname_orig = afl->queue_cur->fname; }
|
||||
if ( el->afl_custom_queue_new_entry) {
|
||||
u8 *fname_orig = NULL;
|
||||
|
||||
afl->mutator->afl_custom_queue_new_entry(afl->mutator->data, fname,
|
||||
fname_orig);
|
||||
/* At the initialization stage, queue_cur is NULL */
|
||||
if (afl->queue_cur) fname_orig = afl->queue_cur->fname;
|
||||
|
||||
el->afl_custom_queue_new_entry(el->data, fname, fname_orig);
|
||||
}
|
||||
|
||||
} );
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user