<div dir="ltr">Could we also take a look at google oss fuzz project : <div><a href="https://github.com/google/oss-fuzz">https://github.com/google/oss-fuzz</a> <br></div><div><br></div><div>I've created an issue where we can talk about it:</div><div><a href="https://github.com/FRRouting/frr/issues/479">https://github.com/FRRouting/frr/issues/479</a> </div><div><br></div><div>Best regards</div><div><br></div><div>Rémy </div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-05-11 0:08 GMT+02:00 Christian Franke <span dir="ltr"><<a href="mailto:chris@opensourcerouting.org" target="_blank">chris@opensourcerouting.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello everyone,<br>
<br>
as I mentioned during yesterdays call when we discussed fuzz testing, I<br>
have made very positive experience with using AFL. [1]<br>
<br>
In contrast to more basic fuzzers, afl uses instrumentation on the code<br>
that is added at compile time. The instrumentation is used to more<br>
efficiently generate fuzz input that causes the use of new branches in<br>
the code. An example to that effect is that when fuzzing libjpeg and<br>
using an 'a' point for fuzzing, afl will quickly come up with various<br>
broken and valid jpeg files, something most simple fuzzers wouldn't.<br>
<br>
Also, afl can generate a minimized corpus of input files from the<br>
fuzzing process that still has the maximum branch coverage achieved<br>
during fuzzing, which is useful to test for regressions without running<br>
the complete fuzzing process again.<br>
<br>
I wrote a small tool called wuschl which wraps around afl and collects<br>
the minimized corpus to use it for regression testing. [2]<br>
<br>
To make use of wuschl one needs to install afl and wuschl and write one<br>
test function that passes its input to the function to be fuzzed.<br>
<br>
Having that, one can run fuzzing and then collect the minimal corpus.<br>
<br>
After that, regression tests based on the corpus can be run without any<br>
need for wuschl or afl.<br>
<br>
Just wanted to point out the existance of AFL and also wuschl since I<br>
think that they might be useful to implement fuzzing for FRR and get the<br>
test coverage up.<br>
<br>
-Christian<br>
<br>
[1] <a href="http://lcamtuf.coredump.cx/afl/" rel="noreferrer" target="_blank">http://lcamtuf.coredump.cx/<wbr>afl/</a><br>
[2] <a href="https://github.com/cfra/wuschl" rel="noreferrer" target="_blank">https://github.com/cfra/wuschl</a><br>
<br>
______________________________<wbr>_________________<br>
dev mailing list<br>
<a href="mailto:dev@lists.frrouting.org">dev@lists.frrouting.org</a><br>
<a href="https://lists.frrouting.org/listinfo/dev" rel="noreferrer" target="_blank">https://lists.frrouting.org/<wbr>listinfo/dev</a><br>
</blockquote></div><br></div>