-
Notifications
You must be signed in to change notification settings - Fork 120
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rejecting unwanted inputs? #214
Comments
@vitalybuka Vitaly, in Tarantool we are using an LPM-based fuzzer for Lua runtime and want to reject unwanted inputs too. It is possible to implement this? |
When LPM was implemented, it was not possible. Yes, we should do that. |
We also need to reject unwanted inputs and avoid them from polluting the corpus. Are there any updates on this feature? |
Yes, we need to provide backward compatibility with existing fuzzers. BTW why PostProcessorRegistration is not enough? |
Modifying the input via Regarding supporting backward compatibility, we also have a few ideas it could be done:
Would be happy to contribute/discuss further. |
You can modify to some unique constant value, e.g. empty proto.
what if we do and then some template magic in DEFINE_TEST_ONE_PROTO_INPUT_IMPL to return 0, or value, depending on TestOneProtoInput type? |
We wouldn't prefer doing this because it would require adding all input validation checks under
We tried working with this suggestion but this might not be possible without adding an extra
|
I don't think it would be possible to deduce the return type as code will always appear at the end after macro. Would you be happy with any of these suggestions. |
Drafted a prototype PR with above solutions, happy to discuss further. |
I use
repeated
messages in my fuzzing harness and length 0 (which it can supply) is unfortunately invalid for me. In a "classic" libFuzzer harness, whenever I get invalid input, I can reject it by returning-1
, however for some reasonlibprotobuf-mutator
ignoresTestOneInput
return code and I get invalid protobufs in my corpus. I've tried the following to propagate the return code, but to no avail:The text was updated successfully, but these errors were encountered: