> To what extent are we fuzzing things like our url parser and other necko 
> bits via our existing shell (xpcshell) that exposes all that stuff?
> 
> -Boris

Not at all. xpcshell is not very useful for fuzzing. It is slow, the sample 
tests (xpcshell-tests) are extremely complicated to adapt and we can't easily 
use it with AFL.

As discussed in #developers, we could maybe have xpcshell work with AFL 
persistent mode (although it would be complicated I assume), but that still 
doesn't solve the problem that people have to write the necessary code that we 
can fuzz then. xpcshell-tests are not that code (I did some fuzzing with an 
xpcshell-test when we added the new X509 validation code and it was horrible).


Right now, the best approach to me seems having gtests and other compiled 
tests. The have the advantage that they are relatively simple to adapt (I was 
able to transform some tests image and mp3 decoding in less than 30 minutes) 
but they often still reflect what we do in the browser. For example for image 
decoding I saw we have multi-chunk decoding. If we just fuzz libjpeg or libpng 
we would just miss this part.

As for speed, on my gtest I get 500-1000 iterations per second on the GIF 
decoder for example. That's a good speed for fuzzing and very useful.

The only thing that I haven't looked into yet is how I can package the 
resulting tests easily so they can be sent to fuzzing machines, but that's 
solvable.
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to