protofuzz
protofuzz copied to clipboard
Cannot handle recursive protobufs
Repro:
from protofuzz import protofuzz
fuzzers = protofuzz.from_description_string("""
message A {
optional B b = 1;
}
message B {
optional A a = 1;
}
""")
for obj in fuzzers['A'].permute():
print(obj)
Result:
...lots of stuff...
egg/protofuzz/protofuzz.py", line 113, in descriptor_to_generator
generator = _prototype_to_generator(descriptor, cls)
File "/Users/ezyang/Dev/onnx-env/lib/python3.6/site-packages/protofuzz-0.1-py3.6.egg/protofuzz/protofuzz.py", line 100, in _prototype_to_generator
generator = descriptor_to_generator(descriptor.message_type, cls)
File "/Users/ezyang/Dev/onnx-env/lib/python3.6/site-packages/protofuzz-0.1-py3.6.egg/protofuzz/protofuzz.py", line 113, in descriptor_to_generator
generator = _prototype_to_generator(descriptor, cls)
File "/Users/ezyang/Dev/onnx-env/lib/python3.6/site-packages/protofuzz-0.1-py3.6.egg/protofuzz/protofuzz.py", line 100, in _prototype_to_generator
generator = descriptor_to_generator(descriptor.message_type, cls)
File "/Users/ezyang/Dev/onnx-env/lib/python3.6/site-packages/protofuzz-0.1-py3.6.egg/protofuzz/protofuzz.py", line 113, in descriptor_to_generator
generator = _prototype_to_generator(descriptor, cls)
File "/Users/ezyang/Dev/onnx-env/lib/python3.6/site-packages/protofuzz-0.1-py3.6.egg/protofuzz/protofuzz.py", line 83, in _prototype_to_generator
if descriptor.type in ints32+ints64:
RecursionError: maximum recursion depth exceeded in comparison