diff options
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.java | 5 |
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) { |