Add OSS-Fuzz integration: rules_fuzzing scaffold and CalculatorGraphConfig harness#6288
Open
ricaskew wants to merge 1 commit into
Open
Add OSS-Fuzz integration: rules_fuzzing scaffold and CalculatorGraphConfig harness#6288ricaskew wants to merge 1 commit into
ricaskew wants to merge 1 commit into
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
Author
|
Companion PR: google/oss-fuzz#15460 |
Author
|
@googlebot I signed it! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR adds an initial OSS-Fuzz integration for MediaPipe, targeting the
CalculatorGraphConfig protobuf parser surface.
What this adds
Three files under mediapipe/framework/fuzz/:
CalculatorGraphConfig via ParseFromArray, then passes valid configs to
CalculatorGraph::Initialize. Memory-safety violations in either path surface
as AddressSanitizer crashes.
over time via coverage-guided mutation)
Plus additions to WORKSPACE to load rules_fuzzing v0.8.0 and its dependencies.
Build notes
The harness requires two build flags for the OSS-Fuzz base-builder environment:
image ships gcc-9 on Ubuntu 20.04 whose libstdc++ lacks the C++20
header required by MediaPipe's pinned abseil. clang-22 + libc++ is present and
supports it cleanly.
path, substituting gpu_shared_data_internal_stub for the EGL-dependent GPU
service layer. The CalculatorGraphConfig parse surface does not require GPU.
Both flags are set in the companion OSS-Fuzz project's build.sh (PR against
google/oss-fuzz submitted separately).
Testing
The fuzzer binary was built locally using helper.py build_fuzzers and smoke-tested
via helper.py reproduce against five inputs (empty proto, minimal valid proto,
random bytes, and two structured text-format inputs). All five inputs executed
cleanly with zero AddressSanitizer findings across 100 iterations each.