CodeIntelligenceTesting / jazzer

Coverage-guided, in-process fuzzing for the JVM
https://code-intelligence.com
Other
1.03k stars 137 forks source link

mutation: Do not initialize recursive proto fields #735

Closed fmeum closed 1 year ago

fmeum commented 1 year ago

When recursive proto fields are initialized, the resulting messages have an expected nesting depth on the order of the inverse of the frequency with which a nullable value is non-null, which tends to run into StackOverflowErrors quickly.

This is fixed by checking whether a given proto field is recursive and if so, only initializing it "layer by layer" in mutations rather than all at once during initialization.

fmeum commented 1 year ago

@hadi88 This should fix the SOE you have seen.