Don't rely on libfuzzer-provided entrypoint #71
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
So, this can definitely work without changes to libfuzzer itself, as it
is written today. There are a couple pieces to it:
FuzzerMain.cpp
at all;LLVMFuzzerRunDriver
defined inFuzzerDriver.cpp
to kick offthe fuzzing process in the macro.
I think with those and something like the
inventory
crate we also openourselves to having interface that's more like
libtest
.That said,
LLVMFuzzerRunDriver
requiresargc
andargv
, which atthat point requires one to manually convert them back into C layout from
std::env::args_os
.I also don't believe this change is meaningful as is, without an
otherwise major rework of the libfuzzer API. It doesn't achieve
anything much as it is, and only serves to complicate the implementation
of libfuzzer crate itself.
cc #46