-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Adds golang protoreflect project #5652
Conversation
cc @bradleyjkemp as well for fuzzing protoreflect already |
The github.com/jhump/protoreflect/dynamic package might also be a good fuzz target (it handles the protobuf wire format). I included a basic fuzz harness in jhump/protoreflect#233 (comment) |
@catenacyber, very cool, definitely interested. Though I must admit that I have no idea how this will work: what runs the fuzzers and when? How am I notified that an issue is found? Is this something I add to CI for my own project and somehow link to this config? |
dae7c9e
to
3b4f17d
Compare
Google runs oss-fuzz continuously
You get a mail.
After this is merged, you can use CIFuzz in your GitHub CI cf https://google.github.io/oss-fuzz/getting-started/continuous-integration/ |
eed87f2
to
067d5fe
Compare
@bradleyjkemp thanks, but this fuzz target seems to fail on first input and I do not know why |
How do you mean it fails on the first input? I've tried running that Fuzz function with a couple strings and it seems to run fine (doesn't immediately panic). Returns errors most of the time but that's expected unless you seed it with a few valid proto message byte sequences |
I get this kind of output
If I run this as a |
@catenacyber You are seeing this particular error because of a bug in libFuzzer that causes it to interfer with Go's signal handlers. This is fixed by https://reviews.llvm.org/D101824. |
I'm not sure, but I would tend to say no. The bug fixed by https://reviews.llvm.org/D101824 is 1) purely related to signal handlers and 2) only interfers with Go if the Go program panics/segfaults in the first place. |
friendly ping @asraa PS : Is it planned to upgrade clang to get the fix from https://reviews.llvm.org/D101824 ? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@jhump would you be interested in continuous fuzzing for protoreflect ?
This enables it with one simple target about protoparse inspired by the one from @johanbrandhorst