This is an archive of the discontinued LLVM Phabricator instance.

[libfuzzer] Trying random unit prefixes during corpus load.
ClosedPublic

Authored by aizatsky on May 16 2016, 2:29 PM.

Diff Detail

Repository
rL LLVM

Event Timeline

aizatsky updated this revision to Diff 57400.May 16 2016, 2:29 PM
aizatsky updated this revision to Diff 57401.
aizatsky retitled this revision from to [libfuzzer] Trying random unit prefixes during corpus load..
aizatsky updated this object.

format.

aizatsky added a project: Restricted Project.
aizatsky added a subscriber: llvm-commits.
kcc edited edge metadata.May 16 2016, 2:40 PM

I wonder if it makes sense to add a test here?

lib/Fuzzer/FuzzerLoop.cpp
360 ↗(On Diff #57401)

didn't you want to flush the coverage here?

382 ↗(On Diff #57401)

S < U.size() ?

vitalybuka added inline comments.May 16 2016, 3:08 PM
lib/Fuzzer/FuzzerLoop.cpp
382 ↗(On Diff #57401)

Probably unimportant here.

aizatsky updated this revision to Diff 58149.May 23 2016, 2:02 PM
aizatsky edited edge metadata.

fuzzer unit test.

aizatsky updated this revision to Diff 58150.May 23 2016, 2:06 PM
aizatsky marked 3 inline comments as done.

reset coverage.

Added test and limited the number of truncation points. PTAL.

kcc added inline comments.May 23 2016, 3:01 PM
lib/Fuzzer/FuzzerFlags.def
87 ↗(On Diff #58150)

I'd prefer to have this flag of by default for now

lib/Fuzzer/FuzzerLoop.cpp
362 ↗(On Diff #58150)

no {}, same below

379 ↗(On Diff #58150)

do you expect duplicates here?

lib/Fuzzer/test/FuzzerUnittest.cpp
16 ↗(On Diff #58150)

make it static and not extern "C"

aizatsky updated this revision to Diff 58347.May 24 2016, 4:05 PM
aizatsky marked 2 inline comments as done.

review

lib/Fuzzer/FuzzerLoop.cpp
379 ↗(On Diff #58150)

There might be, but I don't really care. For big corpus there would be only one point.

kcc accepted this revision.May 24 2016, 4:08 PM
kcc edited edge metadata.

LGTM, ok as an off-by-default feature.
I am still not convinced it's good enough yet, will need to play and see.
Some things to check:

  • are there many duplicate sizes?
  • will this blow up the corpus too much?
This revision is now accepted and ready to land.May 24 2016, 4:08 PM

My plan is to enable it for fuzzer in chrome with big units and see if units get smaller over time.

This revision was automatically updated to reflect the committed changes.