The adapter automates converting sequence of bytes into arbitrary arguments.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
I'm not sure about the whole idea of splitting an array of bytes into multiple arguments. It seems like a lot of mutations in the input byte array would result in very non-local changes to the argument list, ex. inserting a byte at the beginning would shift all arguments to the right which could give them an entirely different meaning.
Would it be better to expose individual arguments to the fuzzing engine?
lib/Fuzzer/FuzzerFnAdapter.h | ||
---|---|---|
104 ↗ | (On Diff #49693) | Space around "<" in "N<std::tuple_size" would greatly help readability. |
I'm not sure about the whole idea of splitting an array of bytes into multiple arguments. It seems like a lot of mutations in the input byte array would result in very non-local changes to the argument list, ex. inserting a byte at the beginning would shift all arguments to the right which could give them an entirely different meaning.
Would it be better to expose individual arguments to the fuzzing engine?
I don't think libfuzzer would do something different if it new anything about arguments. Yes, it could shift, but you can look at it as creating an interesting permutation.
lib/Fuzzer/FuzzerFnAdapter.h | ||
---|---|---|
104 ↗ | (On Diff #49693) | Yes, this file is 100% clang-formatted. I'll fix this line manually and try to remember to refix it after format. |