Allow the custom mutator to generate larger trimmed data (#463)

This commit is contained in:
Shengtuo Hu
2020-07-21 18:00:21 -04:00
committed by GitHub
parent 6c163910ee
commit d90328f6be

View File

@ -282,10 +282,24 @@ u8 trim_case_custom(afl_state_t *afl, struct queue_entry *q, u8 *in_buf,
} else if (unlikely(retlen > orig_len)) {
FATAL(
/* Do not exit the fuzzer, even if the trimmed data returned by the custom
mutator is larger than the original data. For some use cases, like the
grammar mutator, the definition of "size" may have different meanings.
For example, the trimming function in a grammar mutator aims at
reducing the objects in a grammar structure, but does not guarantee to
generate a smaller binary buffer.
Thus, we allow the custom mutator to generate the trimmed data that is
larger than the original data. */
if (afl->not_on_tty && afl->debug) {
WARNF(
"Trimmed data returned by custom mutator is larger than original "
"data");
}
} else if (unlikely(retlen == 0)) {
/* Do not run the empty test case on the target. To keep the custom