Skip to content

OSS-Fuzz: Add new fuzzer/corpus/dict targets tree convertion - #1278

Open
arthurscchan wants to merge 2 commits into
BehaviorTree:masterfrom
arthurscchan:behaviortreecpp-type-conversion
Open

arthurscchan wants to merge 2 commits into
BehaviorTree:masterfrom
arthurscchan:behaviortreecpp-type-conversion

Conversation

@arthurscchan

Copy link
Copy Markdown
Contributor

This PR creates a new OSS-Fuzz fuzzer with corpus/dict targets tree type convertion, together with google/oss-fuzz#16435 to enable a new fuzzer for proejct BehaviorTree.CPP.

Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>
Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>

@facontidavide facontidavide left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @arthurscchan. Stage 1 (convertFromString<T> on a fuzzed string) is useful. Stages 2–4 depend on the input only through a few PickValue/ConsumeIntegralInRange choices, and the values come from text.size() or from a fixed Animal/Cat/Dog hierarchy. That's about 20 fixed combinations, which unit tests cover better (the polymorphic registry already has gtest_polymorphic_ports.cpp), and they slow every run.

Could you reduce this target to stage 1? If you want to keep stage 2, make it fuzz the value, for example Any(fdp.ConsumeIntegral<int64_t>()) / ConsumeFloatingPoint<double>() and then cast to every numeric type, since that's where the narrowing-check code is. Then please rebase: #1277 is merging first and touches the same fuzzing_build.cmake line.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants