aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/code_intelligence/jazzer/mutation/ArgumentsMutator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/code_intelligence/jazzer/mutation/ArgumentsMutator.java')
-rw-r--r--src/main/java/com/code_intelligence/jazzer/mutation/ArgumentsMutator.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/main/java/com/code_intelligence/jazzer/mutation/ArgumentsMutator.java b/src/main/java/com/code_intelligence/jazzer/mutation/ArgumentsMutator.java
index b4577fd8..b93e843f 100644
--- a/src/main/java/com/code_intelligence/jazzer/mutation/ArgumentsMutator.java
+++ b/src/main/java/com/code_intelligence/jazzer/mutation/ArgumentsMutator.java
@@ -115,6 +115,11 @@ public final class ArgumentsMutator {
}
public void invoke() throws Throwable {
+ // TODO: Sometimes hash the serialized value before and after the invocation and check that the
+ // hashes match to catch fuzz tests that mutate mutable inputs (e.g. byte[]).
+ // Alternatively, always detach arguments and instead of the SafeToMutate annotation have a
+ // Mutable annotation that can be used to e.g. receive a mutable implementation of List. This
+ // is always safe, but could incur additional overhead for arrays.
try {
method.invoke(instance, productMutator.detachSelectively(arguments, shouldDetach));
} catch (IllegalAccessException e) {