[llvm-dev] libfuzzer questions

Brian Cain via llvm-dev llvm-dev at lists.llvm.org
Mon Aug 10 17:53:47 PDT 2015


First off, thanks -- this is a pretty great library and it feels like I'm
learning a lot.  I'm getting some more experience with libfuzzer and
finding that I have a couple of questions:

- How does libfuzzer decide to write a new test file?  What distinguishes
this one from all the other cases for which new test inputs were not
written?  Must be something about the path taken through the code?

- Can I use afl-cmin or is there something similar for libFuzzer?  I find
that sometimes I get an enormous amount of tests and it becomes
unmanageable.

- sometimes my process being tested appears to deadlock.  A common feature
seems to be that AlarmCallback is allocating memory and as a consequence
the ASan code is pending on a lock.  I'll speculate that this is because
the alarm expired while the lock was already held.  Is this expected?  I
can share specific call stacks if it helps.  I can just extend the timeout
but I think it's probably appropriate.

- AFL has a curses based display where a bunch of different stats are
shown.  I'll be honest, I don't know how to read those yet. ;)  But I'd
like to find some way to determine whether I'm seeing diminishing returns
with libfuzzer.  Is there a good strategy?

- Can anyone share tips for how libFuzzer has been used with some success
-- anything beyond what's already available in
http://llvm.org/docs/LibFuzzer.html ?

-- 
-Brian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150810/4fc2adac/attachment.html>


More information about the llvm-dev mailing list