You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
One of the major performance bottlenecks when fuzzing with SpecFuzz is the speed of processing the detected bounds violations.
Currently, it is implemented in a very dumb way: Every violation is printed into stderr and we have a python script (postprocessing/analyzer.py) that collects and aggregates the results.
It has several major consequences:
We cannot fuzz on multiple threads - otherwise, the output may get corrupted.
Reporting a vulnerability involves calling fprintf, which is slow when executed hundreds of times per second
Processing every violation requires parsing a string - again, slow
All processing is implemented in python, which is not exactly the fastest language
On top of it, the analyzer itself is not very optimized, which slows down the processing even further.
To deal with these issues, the processing should be completely re-written. The best would if all this functionality becomes a part of our HonggFuzz patch. Then, reporting would be similar to how coverage is implemented right now: SpecFuzz would report the violations through shared memory and a module in HonggFuzz would do the processing.
The text was updated successfully, but these errors were encountered:
One of the major performance bottlenecks when fuzzing with SpecFuzz is the speed of processing the detected bounds violations.
Currently, it is implemented in a very dumb way: Every violation is printed into stderr and we have a python script (
postprocessing/analyzer.py
) that collects and aggregates the results.It has several major consequences:
fprintf
, which is slow when executed hundreds of times per secondOn top of it, the analyzer itself is not very optimized, which slows down the processing even further.
To deal with these issues, the processing should be completely re-written. The best would if all this functionality becomes a part of our HonggFuzz patch. Then, reporting would be similar to how coverage is implemented right now: SpecFuzz would report the violations through shared memory and a module in HonggFuzz would do the processing.
The text was updated successfully, but these errors were encountered: